IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 25563


Ignore:
Timestamp:
Sep 24, 2009, 4:02:05 PM (17 years ago)
Author:
Paul Price
Message:

Adding option to ignore limits. PM_MODEL_LIMITS_NONE allows catching application of limits when none is desired. PM_MODEL_LIMITS_IGNORE ignores all application of limits.

Location:
branches/pap/psModules/src/objects
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/pap/psModules/src/objects/models/pmModel_GAUSS.c

    r25521 r25563  
    5050static float *paramsMaxUse = NULL;
    5151static float betaUse[] = { 1000, 3e6, 5, 5, 2.0, 2.0, 0.5 };
     52
     53static bool limitsApply = true;         // Apply limits?
    5254
    5355// the model is a function of the pixel coordinate (pixcoord[0,1] = x,y)
     
    9193bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
    9294{
     95    if (!limitsApply) {
     96        return true;
     97    }
    9398    psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
    9499
     
    362367        paramsMinUse = NULL;
    363368        paramsMaxUse = NULL;
     369        limitsApply = true;
     370        break;
     371      case PM_MODEL_LIMITS_IGNORE:
     372        paramsMinUse = NULL;
     373        paramsMaxUse = NULL;
     374        limitsApply = false;
    364375      case PM_MODEL_LIMITS_LAX:
    365376        paramsMinUse = paramsMinLax;
    366377        paramsMaxUse = paramsMaxLax;
     378        limitsApply = true;
    367379        break;
    368380      case PM_MODEL_LIMITS_STRICT:
    369381        paramsMinUse = paramsMinStrict;
    370382        paramsMaxUse = paramsMaxStrict;
     383        limitsApply = true;
    371384        break;
    372385      default:
  • branches/pap/psModules/src/objects/models/pmModel_PGAUSS.c

    r25521 r25563  
    5050static float *paramsMaxUse = NULL;
    5151static float betaUse[] = { 1000, 3e6, 5, 5, 2.0, 2.0, 0.5 };
     52
     53static bool limitsApply = true;         // Apply limits?
    5254
    5355// the model is a function of the pixel coordinate (pixcoord[0,1] = x,y)
     
    9294bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
    9395{
     96    if (!limitsApply) {
     97        return true;
     98    }
    9499    psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
    95100
     
    403408}
    404409
     410
    405411void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
    406412{
     
    409415        paramsMinUse = NULL;
    410416        paramsMaxUse = NULL;
     417        limitsApply = true;
     418        break;
     419      case PM_MODEL_LIMITS_IGNORE:
     420        paramsMinUse = NULL;
     421        paramsMaxUse = NULL;
     422        limitsApply = false;
    411423      case PM_MODEL_LIMITS_LAX:
    412424        paramsMinUse = paramsMinLax;
    413425        paramsMaxUse = paramsMaxLax;
     426        limitsApply = true;
    414427        break;
    415428      case PM_MODEL_LIMITS_STRICT:
    416429        paramsMinUse = paramsMinStrict;
    417430        paramsMaxUse = paramsMaxStrict;
     431        limitsApply = true;
    418432        break;
    419433      default:
  • branches/pap/psModules/src/objects/models/pmModel_PS1_V1.c

    r25521 r25563  
    5656static float betaUse[] = { 1000, 3e6, 5, 5, 1.0, 1.0, 0.5, 2.0 };
    5757
     58static bool limitsApply = true;         // Apply limits?
     59
    5860
    5961psF32 PM_MODEL_FUNC (psVector *deriv,
     
    109111bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
    110112{
     113    if (!limitsApply) {
     114        return true;
     115    }
    111116    psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
    112117
     
    436441        paramsMinUse = NULL;
    437442        paramsMaxUse = NULL;
     443        limitsApply = true;
     444        break;
     445      case PM_MODEL_LIMITS_IGNORE:
     446        paramsMinUse = NULL;
     447        paramsMaxUse = NULL;
     448        limitsApply = false;
    438449      case PM_MODEL_LIMITS_LAX:
    439450        paramsMinUse = paramsMinLax;
    440451        paramsMaxUse = paramsMaxLax;
     452        limitsApply = true;
    441453        break;
    442454      case PM_MODEL_LIMITS_STRICT:
    443455        paramsMinUse = paramsMinStrict;
    444456        paramsMaxUse = paramsMaxStrict;
     457        limitsApply = true;
    445458        break;
    446459      default:
  • branches/pap/psModules/src/objects/models/pmModel_QGAUSS.c

    r25521 r25563  
    5252static float betaUse[] = { 1000, 3e6, 5, 5, 1.0, 1.0, 0.5 };
    5353
     54static bool limitsApply = true;         // Apply limits?
     55
    5456psF32 PM_MODEL_FUNC (psVector *deriv,
    5557                     const psVector *params,
     
    105107bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
    106108{
     109    if (!limitsApply) {
     110        return true;
     111    }
    107112    psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
    108113
     
    424429}
    425430
     431
    426432void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
    427433{
     
    430436        paramsMinUse = NULL;
    431437        paramsMaxUse = NULL;
     438        limitsApply = true;
     439        break;
     440      case PM_MODEL_LIMITS_IGNORE:
     441        paramsMinUse = NULL;
     442        paramsMaxUse = NULL;
     443        limitsApply = false;
    432444      case PM_MODEL_LIMITS_LAX:
    433445        paramsMinUse = paramsMinLax;
    434446        paramsMaxUse = paramsMaxLax;
     447        limitsApply = true;
    435448        break;
    436449      case PM_MODEL_LIMITS_STRICT:
    437450        paramsMinUse = paramsMinStrict;
    438451        paramsMaxUse = paramsMaxStrict;
     452        limitsApply = true;
    439453        break;
    440454      default:
  • branches/pap/psModules/src/objects/models/pmModel_RGAUSS.c

    r25521 r25563  
    5252static float betaUse[] = { 1000, 3e6, 5, 5, 0.5, 0.5, 0.5, 0.5 };
    5353
     54static bool limitsApply = true;         // Apply limits?
     55
    5456psF32 PM_MODEL_FUNC (psVector *deriv,
    5557                     const psVector *params,
     
    99101bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
    100102{
     103    if (!limitsApply) {
     104        return true;
     105    }
    101106    psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
    102107
     
    417422}
    418423
     424
    419425void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
    420426{
     
    423429        paramsMinUse = NULL;
    424430        paramsMaxUse = NULL;
     431        limitsApply = true;
     432        break;
     433      case PM_MODEL_LIMITS_IGNORE:
     434        paramsMinUse = NULL;
     435        paramsMaxUse = NULL;
     436        limitsApply = false;
    425437      case PM_MODEL_LIMITS_LAX:
    426438        paramsMinUse = paramsMinLax;
    427439        paramsMaxUse = paramsMaxLax;
     440        limitsApply = true;
    428441        break;
    429442      case PM_MODEL_LIMITS_STRICT:
    430443        paramsMinUse = paramsMinStrict;
    431444        paramsMaxUse = paramsMaxStrict;
     445        limitsApply = true;
    432446        break;
    433447      default:
  • branches/pap/psModules/src/objects/models/pmModel_SERSIC.c

    r25521 r25563  
    5555static float betaUse[] = { 1000, 3e6, 5, 5, 1.0, 1.0, 0.5, 2.0 };
    5656
     57static bool limitsApply = true;         // Apply limits?
     58
    5759psF32 PM_MODEL_FUNC (psVector *deriv,
    5860                     const psVector *params,
     
    114116bool PM_MODEL_LIMITS (psMinConstraintMode mode, int nParam, float *params, float *beta)
    115117{
     118    if (!limitsApply) {
     119        return true;
     120    }
    116121    psAssert(nParam >= 0 && nParam <= PM_PAR_7, "Parameter index is out of bounds");
    117122
     
    410415}
    411416
     417
    412418void PM_MODEL_SET_LIMITS(pmModelLimitsType type)
    413419{
     
    416422        paramsMinUse = NULL;
    417423        paramsMaxUse = NULL;
     424        limitsApply = true;
     425        break;
     426      case PM_MODEL_LIMITS_IGNORE:
     427        paramsMinUse = NULL;
     428        paramsMaxUse = NULL;
     429        limitsApply = false;
    418430      case PM_MODEL_LIMITS_LAX:
    419431        paramsMinUse = paramsMinLax;
    420432        paramsMaxUse = paramsMaxLax;
     433        limitsApply = true;
    421434        break;
    422435      case PM_MODEL_LIMITS_STRICT:
    423436        paramsMinUse = paramsMinStrict;
    424437        paramsMaxUse = paramsMaxStrict;
     438        limitsApply = true;
    425439        break;
    426440      default:
  • branches/pap/psModules/src/objects/pmModel.h

    r25548 r25563  
    4646/// Parameter limit types
    4747typedef enum {
    48     PM_MODEL_LIMITS_NONE,               ///< No limits: fit can go to town
     48    PM_MODEL_LIMITS_NONE,               ///< Apply no limits: suitable for debugging
     49    PM_MODEL_LIMITS_IGNORE,             ///< Ignore all limits: fit can go to town
    4950    PM_MODEL_LIMITS_LAX,                ///< Lax limits: attempting to reproduce mildly bad data
    5051    PM_MODEL_LIMITS_STRICT,             ///< Strict limits: good quality data
Note: See TracChangeset for help on using the changeset viewer.