From c9193a8735f672093d138174b5262a7b21789374 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Kr=C3=B6ning?=
 <martin.kroening@eonerc.rwth-aachen.de>
Date: Tue, 17 Dec 2024 17:03:27 +0100
Subject: [PATCH] refactor(laplace): extract `ITERATIONS`

---
 examples/demo/src/laplace.rs | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/examples/demo/src/laplace.rs b/examples/demo/src/laplace.rs
index 1be9ed9b..71123208 100644
--- a/examples/demo/src/laplace.rs
+++ b/examples/demo/src/laplace.rs
@@ -8,6 +8,7 @@ use std::{mem, vec};
 use rayon::prelude::*;
 
 const SIZE: usize = if cfg!(debug_assertions) { 16 } else { 64 };
+const ITERATIONS: usize = 1000;
 
 pub fn laplace() {
 	eprintln!();
@@ -16,9 +17,9 @@ pub fn laplace() {
 
 	eprintln!("Laplace iterations");
 	let now = Instant::now();
-	let (i, residual) = compute(&mut matrix, SIZE, SIZE);
+	let residual = compute(&mut matrix, SIZE, SIZE, ITERATIONS);
 	let elapsed = now.elapsed();
-	eprintln!("{i} iterations: {elapsed:?} (residual: {residual})");
+	eprintln!("{ITERATIONS} iterations: {elapsed:?} (residual: {residual})");
 
 	assert!(residual < 0.001);
 }
@@ -89,21 +90,16 @@ fn iteration(cur: &[f64], next: &mut [f64], size_x: usize, size_y: usize) {
 		});
 }
 
-fn compute(matrix: &mut [f64], size_x: usize, size_y: usize) -> (usize, f64) {
+fn compute(matrix: &mut [f64], size_x: usize, size_y: usize, iterations: usize) -> f64 {
 	let mut clone = matrix.to_vec();
 
 	let mut current = matrix;
 	let mut next = &mut clone[..];
-	let mut counter = 0;
 
-	while counter < 1000 {
+	for _ in 0..iterations {
 		iteration(current, next, size_x, size_y);
 		mem::swap(&mut current, &mut next);
-
-		counter += 1;
 	}
 
-	let residual = get_residual(current, size_x, size_y);
-
-	(counter, residual)
+	get_residual(current, size_x, size_y)
 }
-- 
GitLab