diff options
author | dhuth <derickhuth@gmail.com> | 2014-09-17 18:09:29 -0600 |
---|---|---|
committer | dhuth <derickhuth@gmail.com> | 2014-09-17 18:09:29 -0600 |
commit | 600fa18324c21a162c50c40ae5f00c899a41dd24 (patch) | |
tree | d399a8ea49c71a85abf5c07cb96b24676df32a0a /test-chill/test-cases/examples/chill/qr.c | |
parent | a2bd0557344bbd8d06e94814abd409f552b0efec (diff) | |
download | chill-600fa18324c21a162c50c40ae5f00c899a41dd24.tar.gz chill-600fa18324c21a162c50c40ae5f00c899a41dd24.tar.bz2 chill-600fa18324c21a162c50c40ae5f00c899a41dd24.zip |
removed submodule, added test-chill
Diffstat (limited to 'test-chill/test-cases/examples/chill/qr.c')
-rw-r--r-- | test-chill/test-cases/examples/chill/qr.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test-chill/test-cases/examples/chill/qr.c b/test-chill/test-cases/examples/chill/qr.c new file mode 100644 index 0000000..8d18b72 --- /dev/null +++ b/test-chill/test-cases/examples/chill/qr.c @@ -0,0 +1,44 @@ +#include <math.h> + +int main() { + + int M, N; + float** A; + float *s; + float *Rdiag; + float *nrm; + int i, j, k; + float t; + for (k = 0; k < N; k++) { + nrm[k] = 0; + + for (i = k; i < M; i++) + nrm[k] = sqrt(nrm[k] * nrm[k] + A[i][k] * A[i][k]); + //t = A[k][k]; + + //if (t < 0) + // nrm[k] = -nrm[k]; + for (i = k; i < M; i++) + A[i][k] = A[i][k] / nrm[k]; + + A[k][k] = A[k][k] + 1; + + for (j = k + 1; j < N; j++) { + s[j] = 0; //S6 + + for (i = k; i < M; i++) + s[j] = s[j] + A[i][k] * A[i][j]; //S7 + + s[j] = -s[j] / A[k][k]; //S8 + + for (i = k; i < M; i++) + A[i][j] = A[i][j] + s[j] * A[i][k]; //S9 + + } + + Rdiag[k] = -nrm[k]; + + } + + return 0; +} |