Changeset 19765 for trunk/psModules/src/imcombine/pmSubtractionEquation.c
- Timestamp:
- Sep 26, 2008, 4:03:24 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/imcombine/pmSubtractionEquation.c
r19532 r19765 758 758 calculatePenalty(sumVector, kernels); 759 759 760 #ifdef TESTING 761 { 762 psImage *inverse = psMatrixInvert(NULL, sumMatrix, NULL); 763 psFits *fits = psFitsOpen("matrixInv.fits", "w"); 764 psFitsWriteImage(fits, NULL, inverse, 0, NULL); 765 psFitsClose(fits); 766 psFree(inverse); 767 } 768 { 769 psImage *X = psMatrixInvert(NULL, sumMatrix, NULL); 770 psImage *Xt = psMatrixTranspose(NULL, X); 771 psImage *XtX = psMatrixMultiply(NULL, Xt, X); 772 psFits *fits = psFitsOpen("matrixErr.fits", "w"); 773 psFitsWriteImage(fits, NULL, XtX, 0, NULL); 774 psFitsClose(fits); 775 psFree(X); 776 psFree(Xt); 777 psFree(XtX); 778 } 779 #endif 780 760 781 psVector *permutation = NULL; // Permutation vector, required for LU decomposition 761 782 psImage *luMatrix = psMatrixLUD(NULL, &permutation, sumMatrix); … … 769 790 } 770 791 kernels->solution1 = psMatrixLUSolve(kernels->solution1, luMatrix, sumVector, permutation); 792 771 793 psFree(sumVector); 772 794 psFree(luMatrix); … … 806 828 calculatePenalty(sumVector2, kernels); 807 829 808 #if 0809 // Apply weighting to maximise the difference between solution coefficients for the same functions810 double fudge = PS_SQR(2 * stamps->footprint + 1); // Fudge factor811 for (int i = 0; i < kernels->num; i++) {812 sumMatrix1->data.F64[i][i] -= fudge;813 sumMatrix2->data.F64[i][i] += fudge;814 }815 #endif816 817 830 // Pure matrix operations 818 831 … … 941 954 #endif 942 955 956 #ifdef TESTING 943 957 { 944 958 psFits *fits = psFitsOpen("sumMatrix1.fits", "w"); … … 961 975 psFitsClose(fits); 962 976 } 963 977 #endif 964 978 965 979 kernels->solution1 = a;
Note:
See TracChangeset
for help on using the changeset viewer.
