IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 7, 2008, 3:31:01 PM (18 years ago)
Author:
eugene
Message:

big update from eam_branch_20081124 with updates to Opihi math

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.astro/multifit.c

    r16059 r20936  
    4646    sprintf (name, "c%d", i);
    4747    if ((Nc[i]  = SelectVector (name, ANYVECTOR, TRUE)) == NULL) goto escape;
     48    ResetVector (Nc[i], OPIHI_FLT, 1);
    4849    sprintf (name, "Mb%d", i);
    4950    if ((NMb[i] = SelectVector (name, OLDVECTOR, TRUE)) == NULL) goto escape;
     51    REQUIRE_VECTOR_FLT (NMb[i], FALSE);
    5052    sprintf (name, "mb%d", i);
    5153    if ((Nmb[i] = SelectVector (name, OLDVECTOR, TRUE)) == NULL) goto escape;
     54    REQUIRE_VECTOR_FLT (Nmb[i], FALSE);
    5255    sprintf (name, "wb%d", i);
    5356    if ((Nwb[i] = SelectVector (name, OLDVECTOR, TRUE)) == NULL) goto escape;
     57    REQUIRE_VECTOR_FLT (Nwb[i], FALSE);
    5458  }
    5559  for (i = 0; i < Norder - 1; i++) {
    5660    sprintf (name, "ml%d", i);
    5761    if ((Nml[i] = SelectVector (name, OLDVECTOR, TRUE)) == NULL) goto escape;
     62    REQUIRE_VECTOR_FLT (Nml[i], FALSE);
    5863    sprintf (name, "mh%d", i);
    5964    if ((Nmh[i] = SelectVector (name, OLDVECTOR, TRUE)) == NULL) goto escape;
     65    REQUIRE_VECTOR_FLT (Nmh[i], FALSE);
    6066    sprintf (name, "wo%d", i);
    6167    if ((Nwo[i] = SelectVector (name, OLDVECTOR, TRUE)) == NULL) goto escape;
     68    REQUIRE_VECTOR_FLT (Nwo[i], FALSE);
    6269  }
    6370
     
    7279            v = 0;
    7380            for (n = 0; n < Nwo[i-1][0].Nelements; n++) {
    74               v += -pow (Nwo[i-1][0].elements[n], (double)(j+J));
     81              v += -pow (Nwo[i-1][0].elements.Flt[n], (double)(j+J));
    7582            }
    7683            a[Ny][Nx] = v;
     
    8390            v = 0;
    8491            for (n = 0; n < Nwo[i][0].Nelements; n++) {
    85               v += -pow (Nwo[i][0].elements[n], (double)(j+J));
     92              v += -pow (Nwo[i][0].elements.Flt[n], (double)(j+J));
    8693            }
    8794            a[Ny][Nx] = v;
     
    94101            v = 0;
    95102            for (n = 0; n < Nwb[i][0].Nelements; n++) {
    96               v += pow (Nwb[i][0].elements[n], (double)(j+J));
     103              v += pow (Nwb[i][0].elements.Flt[n], (double)(j+J));
    97104            }
    98105            if (i > 0) {
    99106              for (n = 0; n < Nwo[i-1][0].Nelements; n++) {
    100                 v += pow (Nwo[i-1][0].elements[n], (double)(j+J));
     107                v += pow (Nwo[i-1][0].elements.Flt[n], (double)(j+J));
    101108              }
    102109            }
    103110            if (i < Norder - 1) {
    104111              for (n = 0; n < Nwo[i][0].Nelements; n++) {
    105                 v += pow (Nwo[i][0].elements[n], (double)(j+J));
     112                v += pow (Nwo[i][0].elements.Flt[n], (double)(j+J));
    106113              }
    107114            }
     
    123130      v = 0;
    124131      for (n = 0; n < Nwb[i][0].Nelements; n++) {
    125         v += NMb[i][0].elements[n]*pow (Nwb[i][0].elements[n], (double)j);
    126         v -= Nmb[i][0].elements[n]*pow (Nwb[i][0].elements[n], (double)j);
     132        v += NMb[i][0].elements.Flt[n]*pow (Nwb[i][0].elements.Flt[n], (double)j);
     133        v -= Nmb[i][0].elements.Flt[n]*pow (Nwb[i][0].elements.Flt[n], (double)j);
    127134      }
    128135      if (i > 0) {
    129136        for (n = 0; n < Nwo[i-1][0].Nelements; n++) {
    130           v += Nmh[i-1][0].elements[n] * pow (Nwo[i-1][0].elements[n], (double)j);
    131           v -= Nml[i-1][0].elements[n] * pow (Nwo[i-1][0].elements[n], (double)j);
     137          v += Nmh[i-1][0].elements.Flt[n] * pow (Nwo[i-1][0].elements.Flt[n], (double)j);
     138          v -= Nml[i-1][0].elements.Flt[n] * pow (Nwo[i-1][0].elements.Flt[n], (double)j);
    132139        }
    133140      }
    134141      if (i < Norder - 1) {
    135142        for (n = 0; n < Nwo[i][0].Nelements; n++) {
    136           v += Nml[i][0].elements[n] * pow (Nwo[i][0].elements[n], (double)j);
    137           v -= Nmh[i][0].elements[n] * pow (Nwo[i][0].elements[n], (double)j);
     143          v += Nml[i][0].elements.Flt[n] * pow (Nwo[i][0].elements.Flt[n], (double)j);
     144          v -= Nmh[i][0].elements.Flt[n] * pow (Nwo[i][0].elements.Flt[n], (double)j);
    138145        }
    139146      }
     
    146153  for (i = 0; i < Norder; i++) {
    147154    Nc[i][0].Nelements = nterm[i];
    148     REALLOCATE (Nc[i][0].elements, float, nterm[i]);
     155    REALLOCATE (Nc[i][0].elements.Flt, opihi_flt, nterm[i]);
    149156    for (j = 0; j < nterm[i]; j++, Ny++) {
    150       Nc[i][0].elements[j] = b[Ny][0];
     157      Nc[i][0].elements.Flt[j] = b[Ny][0];
    151158    }
    152159  }
Note: See TracChangeset for help on using the changeset viewer.