Finish part1
This commit is contained in:
parent
f7198add5e
commit
c5d97c5df9
2
Makefile
2
Makefile
@ -2,7 +2,7 @@ target:
|
||||
mkdir -p target
|
||||
|
||||
target/nbody.c: target
|
||||
$(cc) -O3 -fomit-frame-pointer -march=native -funroll-loops \
|
||||
$(CC) -O3 -fomit-frame-pointer -march=native -funroll-loops \
|
||||
nbody.c -o target/nbody.c -lm
|
||||
|
||||
target/nbody-1:
|
||||
|
30
src/main.rs
30
src/main.rs
@ -189,26 +189,26 @@ unsafe fn advance(bodies: *mut body) {
|
||||
_mm_div_pd(_mm_set1_pd(0.01), distance_Squared),
|
||||
distance_Reciprocal,
|
||||
));
|
||||
}
|
||||
|
||||
{
|
||||
let mut k = 0;
|
||||
for i in 0..BODIES_COUNT - 1 {
|
||||
for j in i + 1..BODIES_COUNT {
|
||||
let i_mass_magnitude = (*bodies.add(i)).mass * magnitudes.0[k];
|
||||
let j_mass_magnitude = (*bodies.add(j)).mass * magnitudes.0[k];
|
||||
for m in 0..3 {
|
||||
(*bodies.add(i)).velocity[m] -= position_Deltas[m].0[k] * j_mass_magnitude;
|
||||
(*bodies.add(j)).velocity[m] += position_Deltas[m].0[k] * i_mass_magnitude;
|
||||
}
|
||||
k += 1;
|
||||
{
|
||||
let mut k = 0;
|
||||
for i in 0..BODIES_COUNT - 1 {
|
||||
for j in i + 1..BODIES_COUNT {
|
||||
let i_mass_magnitude = (*bodies.add(i)).mass * magnitudes.0[k];
|
||||
let j_mass_magnitude = (*bodies.add(j)).mass * magnitudes.0[k];
|
||||
for m in 0..3 {
|
||||
(*bodies.add(i)).velocity[m] -= position_Deltas[m].0[k] * j_mass_magnitude;
|
||||
(*bodies.add(j)).velocity[m] += position_Deltas[m].0[k] * i_mass_magnitude;
|
||||
}
|
||||
k += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for i in 0..BODIES_COUNT {
|
||||
for m in 0..3 {
|
||||
(*bodies.add(i)).position[m] += 0.01 * (*bodies.add(i)).velocity[m];
|
||||
}
|
||||
for i in 0..BODIES_COUNT {
|
||||
for m in 0..3 {
|
||||
(*bodies.add(i)).position[m] += 0.01 * (*bodies.add(i)).velocity[m];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user