Changeset 6481 for trunk/psphot/src/psSparse.c
- Timestamp:
- Feb 23, 2006, 6:16:11 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psSparse.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psSparse.c
r6379 r6481 34 34 sparse->Bfj->data.F32[2] = B->data.F32[2]; 35 35 36 x = psSparseSolve (x, sparse, 0); 37 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 38 39 x = psSparseSolve (x, sparse, 1); 40 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 41 42 x = psSparseSolve (x, sparse, 2); 43 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 44 45 x = psSparseSolve (x, sparse, 3); 46 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 47 48 x = psSparseSolve (x, sparse, 4); 36 psSparseConstraint constraint; 37 constraint.paramMin = -1e8; 38 constraint.paramMax = +1e8; 39 constraint.paramDelta = +1e8; 40 41 x = psSparseSolve (x, constraint, sparse, 0); 42 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 43 44 x = psSparseSolve (x, constraint, sparse, 1); 45 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 46 47 x = psSparseSolve (x, constraint, sparse, 2); 48 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 49 50 x = psSparseSolve (x, constraint, sparse, 3); 51 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 52 53 x = psSparseSolve (x, constraint, sparse, 4); 49 54 fprintf (stderr, "x: %f %f %f\n", x->data.F32[0], x->data.F32[1], x->data.F32[2]); 50 55 return; … … 166 171 } 167 172 168 psVector *psSparseSolve (psVector *guess, psSparse *sparse, int Niter) {173 psVector *psSparseSolve (psVector *guess, psSparseConstraint constraint, psSparse *sparse, int Niter) { 169 174 170 175 psF32 dG; … … 182 187 for (int i = 0; i < dQ->n; i++) { 183 188 dG = (dQ->data.F32[i] - Bfj->data.F32[i]) / Qii->data.F32[i]; 189 if (fabs (dG) > constraint.paramDelta) { 190 if (dG > 0) { 191 dG = +constraint.paramDelta; 192 } else { 193 dG = -constraint.paramDelta; 194 } 195 } 184 196 guess->data.F32[i] -= dG; 197 guess->data.F32[i] = PS_MAX (guess->data.F32[i], constraint.paramMin); 198 guess->data.F32[i] = PS_MIN (guess->data.F32[i], constraint.paramMax); 185 199 } 186 200 } … … 220 234 } 221 235 222
Note:
See TracChangeset
for help on using the changeset viewer.
