IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 5655


Ignore:
Timestamp:
Dec 1, 2005, 1:36:23 PM (21 years ago)
Author:
gusciora
Message:

....

Location:
trunk/psLib/src/math
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/math/psMinimize.c

    r5624 r5655  
    1010 *  @author EAM, IfA
    1111 *
    12  *  @version $Revision: 1.146 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2005-11-30 02:00:09 $
     12 *  @version $Revision: 1.147 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2005-12-01 23:36:23 $
    1414 *
    1515 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    17561756    }
    17571757
    1758     // does the solution in place
    1759     psGaussJordan (A, B);
    1760 
    1761     // the first nTerm entries in B correspond directly to the desired
    1762     // polynomial coefficients.  this is only true for the 1D case
    1763     for (int k = 0; k < nTerm; k++) {
    1764         myPoly->coeff[k] = B->data.F64[k];
    1765     }
     1758    // GaussJordan version
     1759    if (0) {
     1760        // does the solution in place
     1761        psGaussJordan (A, B);
     1762
     1763        // the first nTerm entries in B correspond directly to the desired
     1764        // polynomial coefficients.  this is only true for the 1D case
     1765        for (int k = 0; k < nTerm; k++) {
     1766            myPoly->coeff[k] = B->data.F64[k];
     1767        }
     1768    } else {
     1769        // LUD version of the fit
     1770        psImage *ALUD = NULL;
     1771        psVector* outPerm = NULL;
     1772        psVector* coeffs = NULL;
     1773
     1774        ALUD = psImageAlloc(nTerm, nTerm, PS_TYPE_F64);
     1775        ALUD = psMatrixLUD(ALUD, &outPerm, A);
     1776        coeffs = psMatrixLUSolve(coeffs, ALUD, B, outPerm);
     1777        for (int k = 0; k < nTerm; k++) {
     1778            myPoly->coeff[k] = coeffs->data.F64[k];
     1779        }
     1780        psFree(ALUD);
     1781        psFree(coeffs);
     1782        psFree(outPerm);
     1783    }
     1784
    17661785
    17671786    psFree(A);
  • trunk/psLib/src/math/psStats.c

    r5624 r5655  
    1717 *
    1818 *
    19  *  @version $Revision: 1.155 $ $Name: not supported by cvs2svn $
    20  *  @date $Date: 2005-11-30 02:00:09 $
     19 *  @version $Revision: 1.156 $ $Name: not supported by cvs2svn $
     20 *  @date $Date: 2005-12-01 23:35:33 $
    2121 *
    2222 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    13791379{
    13801380    psTrace(__func__, 4, "---- %s() begin ----\n", __func__);
     1381    psTrace(__func__, 4, "range (%f, %f) get (%f)\n", rangeLow, rangeHigh, getThisValue);
    13811382    PS_ASSERT_POLY_NON_NULL(myPoly, NAN);
    13821383    PS_ASSERT_FLOAT_LARGER_THAN(rangeHigh, rangeLow, NAN);
     
    13861387    psF32 fLo = psPolynomial1DEval(myPoly, rangeLow);
    13871388    psF32 fHi = psPolynomial1DEval(myPoly, rangeHigh);
     1389    psTrace(__func__, 4, "function at endpoints are (%f, %f) get (%f)\n", fLo, fHi, getThisValue);
    13881390    if (!((fLo <= getThisValue) && (fHi >= getThisValue))) {
    13891391        psError(PS_ERR_UNKNOWN, true, "The requested y value (%f) does not fall within the specified range (%f to %f)\n", getThisValue, fLo, fHi);
     
    14731475        y->data.F64[1] = yVec->data.F32[binNum];
    14741476        y->data.F64[2] = yVec->data.F32[binNum + 1];
    1475         psTrace(__func__, 6, "x vec (orig) is (%f %f %f %f)\n", xVec->data.F32[binNum - 1], xVec->data.F32[binNum], xVec->data.F32[binNum+1], xVec->data.F32[binNum+2]);
     1477        psTrace(__func__, 6, "x vec (orig) is (%f %f %f %f)\n", xVec->data.F32[binNum - 1],
     1478                xVec->data.F32[binNum],
     1479                xVec->data.F32[binNum+1],
     1480                xVec->data.F32[binNum+2]);
    14761481        psTrace(__func__, 6, "x vec is (%f %f %f)\n", x->data.F64[0], x->data.F64[1], x->data.F64[2]);
    14771482        psTrace(__func__, 6, "y vec is (%f %f %f)\n", y->data.F64[0], y->data.F64[1], y->data.F64[2]);
     
    15381543        psTrace(__func__, 6, "myPoly->coeff[1] is %f\n", myPoly->coeff[1]);
    15391544        psTrace(__func__, 6, "myPoly->coeff[2] is %f\n", myPoly->coeff[2]);
    1540         psTrace(__func__, 6, "Fitted y vec is (%.2f %.2f %.2f)\n", (psF32) psPolynomial1DEval(myPoly, (psF64) x->data.F64[0]),
     1545        psTrace(__func__, 6, "Fitted y vec is (%f %f %f)\n", (psF32) psPolynomial1DEval(myPoly, (psF64) x->data.F64[0]),
    15411546                (psF32) psPolynomial1DEval(myPoly, (psF64) x->data.F64[1]),
    15421547                (psF32) psPolynomial1DEval(myPoly, (psF64) x->data.F64[2]));
Note: See TracChangeset for help on using the changeset viewer.