Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit be121c9

Browse files
committed
clean code vis. Jubilee's comments
1 parent 435d1cf commit be121c9

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

crates/core_simd/examples/nbody.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,17 @@ pub fn advance(bodies: &mut [Body; N_BODIES], dt: f64) {
126126
}
127127

128128
let mut mag = [0.0; N];
129-
let mut i = 0;
130-
while i < N {
129+
for i in (0..N).step_by(2) {
131130
let d2s = f64x2::from_array([
132131
(r[i] * r[i]).horizontal_sum(),
133132
(r[i + 1] * r[i + 1]).horizontal_sum(),
134133
]);
135134
let dmags = f64x2::splat(dt) / (d2s * d2s.sqrt());
136135
mag[i] = dmags[0];
137136
mag[i + 1] = dmags[1];
138-
i += 2;
139137
}
140138

141-
i = 0;
139+
let mut i = 0;
142140
for j in 0..N_BODIES {
143141
for k in j + 1..N_BODIES {
144142
let f = r[i] * mag[i];
@@ -164,23 +162,21 @@ pub fn run(n: usize) -> (f64, f64) {
164162
(energy_before, energy_after)
165163
}
166164

167-
// Good enough for demonstration purposes, not going for strictness here.
168-
fn approx_eq_f64(a: f64, b: f64) -> bool {
169-
(a - b).abs() < 0.00001
170-
}
171-
172165
#[cfg(test)]
173166
mod tests {
167+
// Good enough for demonstration purposes, not going for strictness here.
168+
fn approx_eq_f64(a: f64, b: f64) -> bool {
169+
(a - b).abs() < 0.00001
170+
}
174171
#[test]
175172
fn test() {
176-
use super::*;
177173
const OUTPUT: [f64; 2] = [-0.169075164, -0.169087605];
178174
let (energy_before, energy_after) = super::run(1000);
179175
assert!(approx_eq_f64(energy_before, OUTPUT[0]));
180176
assert!(approx_eq_f64(energy_after, OUTPUT[1]));
181177
}
182178
}
183179

184-
fn main () {
180+
fn main() {
185181
// empty main to pass CI
186182
}

0 commit comments

Comments
 (0)