IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 42496


Ignore:
Timestamp:
Aug 15, 2023, 12:13:45 PM (3 years ago)
Author:
eugene
Message:

allow NULL x vector for psVectorFitPolynomial1D; allow non-null mask for psVectorFitPolynomial1D IRLS; deactivate CZW verbosity

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20230313/psLib/src/math/psMinimizePolyFit.c

    r42492 r42496  
    4848/* DEFINE STATEMENTS                                                         */
    4949/*****************************************************************************/
    50 #define CZW 1
     50#define CZW 0
    5151
    5252# define USE_GAUSS_JORDAN 1
     
    710710    switch (poly->type) {
    711711    case PS_POLYNOMIAL_ORD:
    712       if ((f64->n < 10000)&&(poly->nX > 1)) {
     712      // if x is NULL, the domain is the index of the vector, in which case we do not
     713      // need to rescale (range is guaranteed to be < 10000)
     714      if ((x != NULL) && (f64->n < 10000) && (poly->nX > 1)) {
    713715        scale = true;
    714716
     
    752754        result = VectorFitPolynomial1DOrd(poly, mask, maskValue, f64, fErr64, z64);
    753755        psFree(z64); // Done with this.
    754       }
    755       else {
     756      } else {
    756757        result = VectorFitPolynomial1DOrd(poly, mask, maskValue, f64, fErr64, x64);
    757758      }
     
    10971098    PS_ASSERT_VECTOR_NON_NULL(f, false);
    10981099    PS_ASSERT_VECTOR_TYPE_F32_OR_F64(f, false);
    1099     PS_ASSERT_VECTOR_NON_NULL(mask, false);
    1100     PS_ASSERT_VECTORS_SIZE_EQUAL(mask, f, false);
    1101     PS_ASSERT_VECTOR_TYPE(mask, PS_TYPE_VECTOR_MASK, false);
     1100    if (mask != NULL) {
     1101        PS_ASSERT_VECTORS_SIZE_EQUAL(mask, f, false);
     1102        PS_ASSERT_VECTOR_TYPE(mask, PS_TYPE_VECTOR_MASK, false);
     1103    }
    11021104
    11031105    if (fErr != NULL) {
     
    11681170        }
    11691171
     1172# if (0)       
     1173        // XXX test:
     1174        FILE *ftest = fopen ("irls.wt.dat", "w");
     1175        for (int i = 0; i < modErr->n; i++) {
     1176            if (modErr->type.type == PS_TYPE_F64) {
     1177                fprintf (ftest, "%d %f\n", i, modErr->data.F64[i]);
     1178            } else {
     1179                fprintf (ftest, "%d %f\n", i, modErr->data.F32[i]);
     1180            }
     1181        }
     1182        fclose (ftest);
     1183# endif
    11701184        psFree (modErr);
    11711185    }
Note: See TracChangeset for help on using the changeset viewer.