IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 21, 2005, 11:37:21 AM (21 years ago)
Author:
drobbin
Message:

Updated/added psTimer fxns and psVectorCreate (and tests)

Location:
trunk/psLib/src/mathtypes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/mathtypes/psVector.c

    r5064 r5087  
    99*  @author Robert DeSonia, MHPCC
    1010*
    11 *  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2005-09-16 23:56:51 $
     11*  @version $Revision: 1.53 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2005-09-21 21:37:21 $
    1313*
    1414*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    745745}
    746746
    747 
     747#define FUNC_MACRO_VECTOR_CREATE(TYPE) \
     748static psVector *vectorCreate##TYPE(double lower, double upper, double delta) \
     749{ \
     750    \
     751    int nBin = (upper - lower) / delta; \
     752    psVector *vec = psVectorAlloc(nBin, PS_TYPE_##TYPE); \
     753    for (int i = 0; i < nBin; i++) \
     754    { \
     755        vec->data.TYPE[i] = lower + (i * delta); \
     756    } \
     757    return vec; \
     758} \
     759
     760FUNC_MACRO_VECTOR_CREATE(S8)
     761FUNC_MACRO_VECTOR_CREATE(S16)
     762FUNC_MACRO_VECTOR_CREATE(S32)
     763FUNC_MACRO_VECTOR_CREATE(S64)
     764FUNC_MACRO_VECTOR_CREATE(U8)
     765FUNC_MACRO_VECTOR_CREATE(U16)
     766FUNC_MACRO_VECTOR_CREATE(U32)
     767FUNC_MACRO_VECTOR_CREATE(U64)
     768FUNC_MACRO_VECTOR_CREATE(F32)
     769FUNC_MACRO_VECTOR_CREATE(F64)
     770
     771psVector *psVectorCreate (double lower,
     772                          double upper,
     773                          double delta,
     774                          psElemType type)
     775{
     776    psVector *out;
     777    switch (type) {
     778    case PS_TYPE_S8:
     779        out = vectorCreateS8( lower,  upper, delta);
     780        break;
     781    case PS_TYPE_S16:
     782        out = vectorCreateS16(lower, upper, delta);
     783        break;
     784    case PS_TYPE_S32:
     785        out = vectorCreateS32(lower, upper, delta);
     786        break;
     787    case PS_TYPE_S64:
     788        out = vectorCreateS64(lower, upper, delta);
     789        break;
     790    case PS_TYPE_U8:
     791        out = vectorCreateU8(lower, upper, delta);
     792        break;
     793    case PS_TYPE_U16:
     794        out = vectorCreateU16(lower, upper, delta);
     795        break;
     796    case PS_TYPE_U32:
     797        out = vectorCreateU32(lower, upper, delta);
     798        break;
     799    case PS_TYPE_U64:
     800        out = vectorCreateU64(lower, upper, delta);
     801        break;
     802    case PS_TYPE_F32:
     803        out = vectorCreateF32(lower, upper, delta);
     804        break;
     805    case PS_TYPE_F64:
     806        out = vectorCreateF64(lower, upper, delta);
     807        break;
     808    default:
     809        psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Invalid psType for Vector Create\n");
     810    }
     811    /*
     812      for (int i = 0; i < nBin; i++) {
     813        out->data.F64[i] = lower + i * delta;
     814      }
     815    */
     816    return (out);
     817}
     818
  • trunk/psLib/src/mathtypes/psVector.h

    r5064 r5087  
    1111 *  @author Ross Harman, MHPCC
    1212 *
    13  *  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
    14  *  @date $Date: 2005-09-16 23:56:51 $
     13 *  @version $Revision: 1.46 $ $Name: not supported by cvs2svn $
     14 *  @date $Date: 2005-09-21 21:37:21 $
    1515 *
    1616 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    208208);
    209209
     210/** Creates a new vector, or reallocates the provided vector if input is not NULL.
     211 *
     212 *  The created vector consists of the data range starting at lower, running to upper,
     213 *  in steps of delta.  The upper-end value is exclusive; the sequence is equivalent to
     214 *  for (x = lower; x <= upper - 1; x += delta).
     215 *
     216 *  @return psVector*:       the newly created psVector
     217 */
     218psVector *psVectorCreate (
     219    double lower,                      ///< lower bound
     220    double upper,                      ///< upper bound
     221    double delta,                      ///< size of increment
     222    psElemType type                    ///< type of vector to create
     223);
     224
    210225/// @}
    211226
Note: See TracChangeset for help on using the changeset viewer.