IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 20, 2012, 3:07:22 PM (14 years ago)
Author:
eugene
Message:

fixed up mextract -parallel to work correctly; parallel ops now fairly complete

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20111122/Ohana/src/opihi/lib.shell/VectorOps.c

    r33309 r33313  
    185185  if (in[0].elements.Ptr) {
    186186    if (in[0].type == OPIHI_FLT) {
    187       ALLOCATE (out[0].elements.Flt, opihi_flt, out[0].Nelements);
     187      ALLOCATE (out[0].elements.Flt, opihi_flt, MAX(1,out[0].Nelements));
    188188      memcpy (out[0].elements.Flt, in[0].elements.Flt, out[0].Nelements*sizeof(opihi_flt));
    189189      out[0].type = OPIHI_FLT;
    190190    } else {
    191       ALLOCATE (out[0].elements.Int, opihi_int, out[0].Nelements);
     191      ALLOCATE (out[0].elements.Int, opihi_int, MAX(1,out[0].Nelements));
    192192      memcpy (out[0].elements.Int, in[0].elements.Int, out[0].Nelements*sizeof(opihi_int));
    193193      out[0].type = OPIHI_INT;
     
    201201  out[0].Nelements = in[0].Nelements;
    202202  if (type == OPIHI_FLT) {
    203     ALLOCATE (out[0].elements.Flt, opihi_flt, out[0].Nelements);
     203    ALLOCATE (out[0].elements.Flt, opihi_flt, MAX(1,out[0].Nelements));
    204204    out[0].type = OPIHI_FLT;
    205205  } else {
    206     ALLOCATE (out[0].elements.Int, opihi_int, out[0].Nelements);
     206    ALLOCATE (out[0].elements.Int, opihi_int, MAX(1,out[0].Nelements));
    207207    out[0].type = OPIHI_INT;
    208208  }
     
    210210}
    211211
    212 // ResetVector (vecx, OPIHI_FLT, MAX (Npts, 1));
    213212int ResetVector (Vector *vec, char type, int Nelements) {
    214213
    215   vec[0].Nelements = Nelements;
     214  // a vector can only have >= 0 elements
     215  vec[0].Nelements = MAX(Nelements,0);
    216216  if (type == OPIHI_FLT) {
    217217    REALLOCATE (vec[0].elements.Flt, opihi_flt, MAX(1, Nelements));
     
    227227int SetVector (Vector *vec, char type, int Nelements) {
    228228
    229   vec[0].Nelements = Nelements;
     229  vec[0].Nelements = MAX(Nelements,0);
    230230  if (type == OPIHI_FLT) {
    231     ALLOCATE (vec[0].elements.Flt, opihi_flt, Nelements);
     231    ALLOCATE (vec[0].elements.Flt, opihi_flt, MAX(1,Nelements));
    232232    vec[0].type = OPIHI_FLT;
    233233  } else {
    234     ALLOCATE (vec[0].elements.Int, opihi_int, Nelements);
     234    ALLOCATE (vec[0].elements.Int, opihi_int, MAX(1,Nelements));
    235235    vec[0].type = OPIHI_INT;
    236236  }
Note: See TracChangeset for help on using the changeset viewer.