diff options
author | Yann Herklotz <git@yannherklotz.com> | 2020-11-14 16:23:00 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2020-11-14 16:23:00 +0000 |
commit | 4201a38997543ceedad52f77b992dd8eb4a2ee5e (patch) | |
tree | 16b4adb28028e21f3ae9d46539167ece72c1c4a8 /benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c | |
parent | 43773b8d4a69dfd30759db2a5026a4f44cdac4cb (diff) | |
parent | 95861dbef966e2cb612b303615681fc29c3acd3d (diff) | |
download | vericert-kvx-4201a38997543ceedad52f77b992dd8eb4a2ee5e.tar.gz vericert-kvx-4201a38997543ceedad52f77b992dd8eb4a2ee5e.zip |
Merge branch 'dev-experiments'
Diffstat (limited to 'benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c')
-rw-r--r-- | benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c | 50 |
1 files changed, 23 insertions, 27 deletions
diff --git a/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c b/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c index 264251d..05e85ea 100644 --- a/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c +++ b/benchmarks/polybench-syn/linear-algebra/solvers/cholesky.c @@ -9,7 +9,7 @@ */ /* cholesky.c: this file is part of PolyBench/C */ -#include <stdio.h> +#include "../../include/misc.h" # define SQRT_FUN(x) sqrtf(x) @@ -24,7 +24,7 @@ void init_array(int n, for (i = 0; i < n; plus(i)) { for (j = 0; j <= i; plus(j)) - A[i][j] = (int)(-j % n) / n + ONE; + A[i][j] = (int)sdivider(smodulo(-j, n), n) + ONE; for (j = i + ONE; j < n; plus(j)) { A[i][j] = 0; } @@ -76,34 +76,30 @@ void kernel_cholesky(int n, int i, j, k; int ONE = 1; -#pragma scop - for (i = 0; i < n; plus(i)) { - - for (j = 0; j < i; plus(j)) { - for (k = 0; k < j; plus(k)) { - A[i][j] -= A[i][k] * A[j][k]; - } - A[i][j] /= A[j][j]; - } - - for (k = 0; k < i; plus(k)) { - A[i][i] -= A[i][k] * A[i][k]; - } - int sq = 0; int val = 0; int cmp = A[i][i]; - printf("cmp %d\n",cmp); - while(sq <= cmp) { - val = val + ONE; - sq = val * val; - } - printf("val %d\n",val); - A[i][i] = val; - } -#pragma endscop + for (i = 0; i < n; plus(i)) { + + for (j = 0; j < i; plus(j)) { + for (k = 0; k < j; plus(k)) { + A[i][j] -= A[i][k] * A[j][k]; + } + A[i][j] = sdivider(A[i][j] ,A[j][j]); + } + + for (k = 0; k < i; plus(k)) { + A[i][i] -= A[i][k] * A[i][k]; + } + int sq = 0; int val = 0; int cmp = A[i][i]; + while(sq <= cmp) { + val = val + ONE; + sq = val * val; + } + A[i][i] = val; + } } -int main(int argc, char** argv) +int main() { int n = 40; @@ -112,7 +108,7 @@ int main(int argc, char** argv) int A[40][40]; - //init_array (n, A); + init_array (n, A); kernel_cholesky (n, A); |