about summary refs log tree commit diff
diff options
context:
space:
mode:
authormiguel raz <miguelraz@gmail.com>2021-06-04 10:54:08 -0500
committermiguel raz <miguelraz@gmail.com>2021-06-04 10:54:08 -0500
commitbe121c93ffc443a82735321edd793ef1e3ee3a00 (patch)
treeef79c948972d03b5ef7e5c6716a4368f2c9049f0
parent435d1cf7a6985696291048e3b5f2bf7e1b63aa32 (diff)
downloadrust-be121c93ffc443a82735321edd793ef1e3ee3a00.tar.gz
rust-be121c93ffc443a82735321edd793ef1e3ee3a00.zip
clean code vis. Jubilee's comments
-rw-r--r--crates/core_simd/examples/nbody.rs18
1 files changed, 7 insertions, 11 deletions
diff --git a/crates/core_simd/examples/nbody.rs b/crates/core_simd/examples/nbody.rs
index 0aad4935f3a..44e1c6e87d0 100644
--- a/crates/core_simd/examples/nbody.rs
+++ b/crates/core_simd/examples/nbody.rs
@@ -126,8 +126,7 @@ pub fn advance(bodies: &mut [Body; N_BODIES], dt: f64) {
     }
 
     let mut mag = [0.0; N];
-    let mut i = 0;
-    while i < N {
+    for i in (0..N).step_by(2) {
         let d2s = f64x2::from_array([
             (r[i] * r[i]).horizontal_sum(),
             (r[i + 1] * r[i + 1]).horizontal_sum(),
@@ -135,10 +134,9 @@ pub fn advance(bodies: &mut [Body; N_BODIES], dt: f64) {
         let dmags = f64x2::splat(dt) / (d2s * d2s.sqrt());
         mag[i] = dmags[0];
         mag[i + 1] = dmags[1];
-        i += 2;
     }
 
-    i = 0;
+    let mut i = 0;
     for j in 0..N_BODIES {
         for k in j + 1..N_BODIES {
             let f = r[i] * mag[i];
@@ -164,16 +162,14 @@ pub fn run(n: usize) -> (f64, f64) {
     (energy_before, energy_after)
 }
 
-// Good enough for demonstration purposes, not going for strictness here.
-fn approx_eq_f64(a: f64, b: f64) -> bool {
-    (a - b).abs() < 0.00001
-}
-
 #[cfg(test)]
 mod tests {
+    // Good enough for demonstration purposes, not going for strictness here.
+    fn approx_eq_f64(a: f64, b: f64) -> bool {
+        (a - b).abs() < 0.00001
+    }
     #[test]
     fn test() {
-        use super::*;
         const OUTPUT: [f64; 2] = [-0.169075164, -0.169087605];
         let (energy_before, energy_after) = super::run(1000);
         assert!(approx_eq_f64(energy_before, OUTPUT[0]));
@@ -181,6 +177,6 @@ mod tests {
     }
 }
 
-fn main () {
+fn main() {
     // empty main to pass CI
 }