Changeset 26418
- Timestamp:
- Dec 15, 2009, 6:15:25 PM (16 years ago)
- Location:
- branches/eam_branches/20091201/Ohana/src/opihi
- Files:
-
- 4 added
- 4 edited
-
cmd.data/Makefile (modified) (1 diff)
-
cmd.data/init.c (modified) (2 diffs)
-
cmd.data/matrix.c (added)
-
cmd.data/svd.c (modified) (1 diff)
-
cmd.data/test/matrix.sh (added)
-
cmd.data/test/svd.sh (added)
-
doc/svdcmp_eispack.f (added)
-
include/data.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/Ohana/src/opihi/cmd.data/Makefile
r25757 r26418 69 69 $(SRC)/load.$(ARCH).o \ 70 70 $(SRC)/lookup.$(ARCH).o \ 71 $(SRC)/matrix.$(ARCH).o \ 71 72 $(SRC)/mkrgb.$(ARCH).o \ 72 73 $(SRC)/mcreate.$(ARCH).o \ -
branches/eam_branches/20091201/Ohana/src/opihi/cmd.data/init.c
r25757 r26418 58 58 int load PROTO((int, char **)); 59 59 int lookup PROTO((int, char **)); 60 int matrix PROTO((int, char **)); 60 61 int mkrgb PROTO((int, char **)); 61 62 int mcreate PROTO((int, char **)); … … 195 196 {1, "minterp", minterp, "interpolate image pixels"}, 196 197 {1, "iminterp", minterp, "interpolate image pixels"}, 198 {1, "matrix", matrix, "matrix math operations"}, 197 199 {1, "mkrgb", mkrgb, "convert 3 images to rgb jpeg (use Kapa for better control)"}, 198 200 {1, "mset", mset, "insert a vector in an image"}, -
branches/eam_branches/20091201/Ohana/src/opihi/cmd.data/svd.c
r20936 r26418 57 57 /* use a bcopy instead? */ 58 58 59 // try C.R. Bond's version -- requires matrices in the form A[row][col] not A[row*Ncol + col] 60 if (1) { 61 int j; 62 double **a, **u, **v, *q; 63 ALLOCATE (a, double *, Ny); 64 ALLOCATE (u, double *, Ny); 65 ALLOCATE (v, double *, Ny); 66 for (i = 0; i < Ny; i++) { 67 ALLOCATE (a[i], double, Nx); 68 ALLOCATE (u[i], double, Nx); 69 ALLOCATE (v[i], double, Nx); 70 } 71 ALLOCATE (q, double, Nx); 72 73 for (j = 0; j < Ny; j++) { 74 for (i = 0; i < Nx; i++) { 75 a[j][i] = A[j*Nx + i]; 76 u[j][i] = 0; 77 v[j][i] = 0; 78 } 79 } 80 for (i = 0; i < Nx; i++) { 81 q[i] = 0; 82 } 83 84 status = svdcmp_bond_raw (Ny, Nx, 1, 1, FLT_EPSILON, 1e-6, a, q, u, v); 85 fprintf (stderr, "status: %d\n", status); 86 87 // copy u q v back to U W V: 88 for (j = 0; j < Ny; j++) { 89 for (i = 0; i < Nx; i++) { 90 U[j*Nx + i] = u[j][i]; 91 V[j*Nx + i] = v[j][i]; 92 } 93 } 94 for (i = 0; i < Nx; i++) { 95 W[i] = q[i]; 96 } 97 98 for (j = 0; j < Ny; j++) { 99 free(a[j]); 100 free(u[j]); 101 free(v[j]); 102 } 103 free (a); 104 free (u); 105 free (v); 106 free (q); 107 108 return TRUE; 109 } 110 59 111 status = svdcmp (U, W, V, Nx, Ny); 60 112 if (!status) { -
branches/eam_branches/20091201/Ohana/src/opihi/include/data.h
r26258 r26418 89 89 int svdcmp (float *a, opihi_flt *w, float *v, int Nx, int Ny); 90 90 91 /* in svdcmp_bond_raw.c */ 92 int svdcmp_bond_raw(int m, int n, int withu, int withv, double eps, double tol, double **a, double *q, double **u, double **v); 93 91 94 /* mrqmin.c */ 92 95 opihi_flt mrqcof (opihi_flt *x, opihi_flt *y, opihi_flt *dy, int Npts,
Note:
See TracChangeset
for help on using the changeset viewer.
