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/lib.data/graphtools.c

    r13479 r20936  
    11# include "data.h"
    22
     3// XXX need to select the active vector for the range analysis
     4// this function accepts either FLT or INT vectors
    35void SetLimits (Vector *xvec, Vector *yvec, Graphdata *graphmode) {
    46
     
    79
    810  if (xvec != NULL) {
    9     maxX = minX = xvec[0].elements[0];
    10     for (i = 1; i < xvec[0].Nelements; i++) {
    11       if (!finite(xvec[0].elements[i])) continue;
    12       maxX = MAX (maxX, xvec[0].elements[i]);
    13       minX = MIN (minX, xvec[0].elements[i]);
     11    if (xvec->type == OPIHI_FLT) {
     12      maxX = minX = xvec[0].elements.Flt[0];
     13      for (i = 1; i < xvec[0].Nelements; i++) {
     14        if (!finite(xvec[0].elements.Flt[i])) continue;
     15        maxX = MAX (maxX, xvec[0].elements.Flt[i]);
     16        minX = MIN (minX, xvec[0].elements.Flt[i]);
     17      }
     18    } else {
     19      maxX = minX = xvec[0].elements.Int[0];
     20      for (i = 1; i < xvec[0].Nelements; i++) {
     21        if (!finite(xvec[0].elements.Int[i])) continue;
     22        maxX = MAX (maxX, xvec[0].elements.Int[i]);
     23        minX = MIN (minX, xvec[0].elements.Int[i]);
     24      }
    1425    }
    1526    range = maxX - minX;
     
    2132
    2233  if (yvec != NULL) {
    23     maxY = minY = yvec[0].elements[0];
    24     for (i = 1; i < yvec[0].Nelements; i++) {
    25       if (!finite(yvec[0].elements[i])) continue;
    26       maxY = MAX (maxY, yvec[0].elements[i]);
    27       minY = MIN (minY, yvec[0].elements[i]);
     34    if (yvec->type == OPIHI_FLT) {
     35      maxY = minY = yvec[0].elements.Flt[0];
     36      for (i = 1; i < yvec[0].Nelements; i++) {
     37        if (!finite(yvec[0].elements.Flt[i])) continue;
     38        maxY = MAX (maxY, yvec[0].elements.Flt[i]);
     39        minY = MIN (minY, yvec[0].elements.Flt[i]);
     40      }
     41    } else {
     42      maxY = minY = yvec[0].elements.Int[0];
     43      for (i = 1; i < yvec[0].Nelements; i++) {
     44        if (!finite(yvec[0].elements.Int[i])) continue;
     45        maxY = MAX (maxY, yvec[0].elements.Int[i]);
     46        minY = MIN (minY, yvec[0].elements.Int[i]);
     47      }
    2848    }
    2949    range = maxY - minY;
Note: See TracChangeset for help on using the changeset viewer.