projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
s/full\>/ful/.
[libfirm]
/
ir
/
adt
/
gaussjordan.c
diff --git
a/ir/adt/gaussjordan.c
b/ir/adt/gaussjordan.c
index
c07faaa
..
3318fec
100644
(file)
--- a/
ir/adt/gaussjordan.c
+++ b/
ir/adt/gaussjordan.c
@@
-32,14
+32,14
@@
/* returns 0 if successful */
/* returns -1 if ill-conditioned matrix */
/*------------------------------------------------------*/
/* returns 0 if successful */
/* returns -1 if ill-conditioned matrix */
/*------------------------------------------------------*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
#include "config.h"
-#endif
#include <math.h>
#include <stdlib.h>
#include "xmalloc.h"
#include <math.h>
#include <stdlib.h>
#include "xmalloc.h"
+#include "gaussjordan.h"
+
#define SMALL 0.00001
int firm_gaussjordansolve(double *A, double *vec, int nsize)
#define SMALL 0.00001
int firm_gaussjordansolve(double *A, double *vec, int nsize)
@@
-76,7
+76,7
@@
int firm_gaussjordansolve(double *A, double *vec, int nsize)
}
/* swap rows */
}
/* swap rows */
- for(i=0;i<nsize;i++) {
+ for
(i=0;i<nsize;i++) {
temp = _A(col,i);
_A(col,i) = _A(biggest_r,i);
_A(biggest_r,i) = temp;
temp = _A(col,i);
_A(col,i) = _A(biggest_r,i);
_A(biggest_r,i) = temp;
@@
-87,7
+87,7
@@
int firm_gaussjordansolve(double *A, double *vec, int nsize)
vec[biggest_r] = temp;
/* swap columns */
vec[biggest_r] = temp;
/* swap columns */
- for(i=0;i<nsize;i++) {
+ for
(i=0;i<nsize;i++) {
temp = _A(i,col);
_A(i,col) = _A(i,biggest_c);
_A(i,biggest_c) = temp;
temp = _A(i,col);
_A(i,col) = _A(i,biggest_c);
_A(i,biggest_c) = temp;
@@
-99,13
+99,13
@@
int firm_gaussjordansolve(double *A, double *vec, int nsize)
/* partially annihilate this col */
/* zero columns below diag */
/* partially annihilate this col */
/* zero columns below diag */
- for(row=col+1;row<nsize;row++) {
+ for
(row=col+1;row<nsize;row++) {
/* changes during calc */
temp = _A(row,col) / _A(col,col);
/* annihilates A[][] */
/* changes during calc */
temp = _A(row,col) / _A(col,col);
/* annihilates A[][] */
- for(i=col;i<nsize;i++)
+ for
(i=col;i<nsize;i++)
_A(row,i) = _A(row,i) - temp * _A(col,i);
/* same op on vec */
_A(row,i) = _A(row,i) - temp * _A(col,i);
/* same op on vec */
@@
-117,14
+117,14
@@
int firm_gaussjordansolve(double *A, double *vec, int nsize)
scramvec[nsize - 1] = vec[nsize - 1] / _A(nsize - 1,nsize - 1);
/* answer needs sorting */
scramvec[nsize - 1] = vec[nsize - 1] / _A(nsize - 1,nsize - 1);
/* answer needs sorting */
- for(i=nsize-2;i>=0;i--) {
+ for
(i=nsize-2;i>=0;i--) {
sum = 0;
sum = 0;
- for(j=i+1;j<nsize;j++)
+ for
(j=i+1;j<nsize;j++)
sum = sum + _A(i,j) * scramvec[j];
scramvec[i] = (vec[i] - sum) / _A(i,i);
}
/* reorder unknowns--return in vec */
sum = sum + _A(i,j) * scramvec[j];
scramvec[i] = (vec[i] - sum) / _A(i,i);
}
/* reorder unknowns--return in vec */
- for(i=0;i<nsize;i++) {
+ for
(i=0;i<nsize;i++) {
j = x[i];
vec[j] = scramvec[i];
}
j = x[i];
vec[j] = scramvec[i];
}