Changeset 6947 for trunk/psModules/src/objects/models/pmModel_PGAUSS.c
- Timestamp:
- Apr 21, 2006, 11:33:00 AM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/models/pmModel_PGAUSS.c
r6872 r6947 76 76 } 77 77 78 // make an initial guess for parameters 79 bool pmModelGuess_PGAUSS (pmModel *model, pmSource *source) 80 { 81 82 pmMoments *moments = source->moments; 83 psF32 *params = model->params->data.F32; 84 85 params[0] = moments->Sky; 86 params[1] = moments->Peak - moments->Sky; 87 params[2] = moments->x; 88 params[3] = moments->y; 89 params[4] = (moments->Sx < (1.2 / 2.0)) ? 2.0 : (1.2 / moments->Sx); 90 params[5] = (moments->Sy < (1.2 / 2.0)) ? 2.0 : (1.2 / moments->Sy); 91 params[6] = 0.0; 92 93 return(true); 94 } 95 78 96 psF64 pmModelFlux_PGAUSS(const psVector *params) 79 97 { 80 float f,norm, z;98 float norm, z; 81 99 82 100 psF32 *PAR = params->data.F32; … … 90 108 // the area needs to be multiplied by the integral of f(z) 91 109 norm = 0.0; 92 for (z = 0.005; z < 50; z += 0.01) { 93 f = 1.0 / (1 + z + z*z/2 + z*z*z/6); 94 norm += f; 110 111 # define DZ 0.25 112 113 float f0 = 1.0; 114 float f1, f2; 115 for (z = DZ; z < 50; z += DZ) { 116 f1 = 1.0 / (1 + PAR[7]*z + pow(z, 2.25)); 117 z += DZ; 118 f2 = 1.0 / (1 + PAR[7]*z + pow(z, 2.25)); 119 norm += f0 + 4*f1 + f2; 120 f0 = f2; 95 121 } 96 norm *= 0.01;122 norm *= DZ / 3.0; 97 123 98 psF64 Flux = params->data.F32[1] * Area * norm;124 psF64 Flux = PAR[1] * Area * norm; 99 125 100 126 return(Flux); … … 118 144 } 119 145 return (radius); 120 }121 122 bool pmModelGuess_PGAUSS (pmModel *model, pmSource *source)123 {124 125 pmMoments *moments = source->moments;126 psF32 *params = model->params->data.F32;127 128 params[0] = moments->Sky;129 params[1] = moments->Peak - moments->Sky;130 params[2] = moments->x;131 params[3] = moments->y;132 params[4] = 1.2 / moments->Sx;133 params[5] = 1.2 / moments->Sy;134 params[6] = 0.0;135 136 return(true);137 146 } 138 147
Note:
See TracChangeset
for help on using the changeset viewer.
