Changeset 3476 for trunk/psLib/src/collections
- Timestamp:
- Mar 22, 2005, 11:52:49 AM (21 years ago)
- Location:
- trunk/psLib/src/collections
- Files:
-
- 2 edited
-
psVector.c (modified) (8 diffs)
-
psVector.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/collections/psVector.c
r3407 r3476 9 9 * @author Robert DeSonia, MHPCC 10 10 * 11 * @version $Revision: 1.3 5$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-03- 11 20:38:56$11 * @version $Revision: 1.36 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-03-22 21:52:49 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 37 37 } 38 38 39 psFree(psVec->data. V);39 psFree(psVec->data.U8); 40 40 } 41 41 … … 59 59 60 60 // Create vector data array 61 psVec->data. V= psAlloc(nalloc * elementSize);61 psVec->data.U8 = psAlloc(nalloc * elementSize); 62 62 63 63 return psVec; … … 80 80 } 81 81 // Realloc after decrementation to avoid accessing freed array elements 82 in->data. V = psRealloc(in->data.V, nalloc * elementSize);82 in->data.U8 = psRealloc(in->data.U8, nalloc * elementSize); 83 83 in->nalloc = nalloc; 84 84 } … … 107 107 // need to increase data buffer? 108 108 if (byteSize > in->nalloc*PSELEMTYPE_SIZEOF(in->type.type)) { 109 in->data. V = psRealloc(in->data.V, byteSize);109 in->data.U8 = psRealloc(in->data.U8, byteSize); 110 110 in->nalloc = n; 111 111 } … … 235 235 inType = inVector->type.type; 236 236 N = inVector->n; 237 inVec = inVector->data.V;237 inVec = (psPtr)inVector->data.U8; 238 238 elSize = PSELEMTYPE_SIZEOF(inType); 239 239 … … 249 249 } 250 250 outVector->n = N; 251 outVec = outVector->data. V;251 outVec = outVector->data.U8; 252 252 253 253 if (N == 0) { … … 496 496 } 497 497 498 psF64 p_psVectorGetElementF64(psVector* vector, 499 int position) 500 { 501 if (vector == NULL) { 502 return NAN; 503 } 504 if (position < 0 || position >= vector->n) { 505 return NAN; 506 } 507 508 switch (vector->type.type) { 509 case PS_TYPE_U8: 510 return vector->data.U8[position]; 511 break; 512 case PS_TYPE_U16: 513 return vector->data.U16[position]; 514 break; 515 case PS_TYPE_U32: 516 return vector->data.U32[position]; 517 break; 518 case PS_TYPE_U64: 519 return vector->data.U64[position]; 520 break; 521 case PS_TYPE_S8: 522 return vector->data.S8[position]; 523 break; 524 case PS_TYPE_S16: 525 return vector->data.S16[position]; 526 break; 527 case PS_TYPE_S32: 528 return vector->data.S32[position]; 529 break; 530 case PS_TYPE_S64: 531 return vector->data.S64[position]; 532 break; 533 case PS_TYPE_F32: 534 return vector->data.F32[position]; 535 break; 536 case PS_TYPE_F64: 537 return vector->data.F64[position]; 538 default: 539 return NAN; 540 } 541 } -
trunk/psLib/src/collections/psVector.h
r3407 r3476 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1. 29$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-03- 11 20:38:56$13 * @version $Revision: 1.30 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-03-22 21:52:49 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 37 37 38 38 union { 39 psBool B; ///< Boolean data.40 39 psU8* U8; ///< Unsigned 8-bit integer data. 41 40 psU16* U16; ///< Unsigned 16-bit integer data. … … 50 49 psC32* C32; ///< Single-precision complex data. 51 50 psC64* C64; ///< Double-precision complex data. 52 psPtr V; ///< Pointer to data.53 51 } data; ///< Union for data types. 54 52 } … … 153 151 ); 154 152 153 /** Returns an element in the vector as a psF64 value 154 * 155 * @return psF64 the value at specified position, or NAN if position is invalid. 156 */ 157 psF64 p_psVectorGetElementF64( 158 psVector* vector, ///< vector to retrieve element 159 int position ///< the vector position to get 160 ); 161 162 155 163 /// @} 156 164
Note:
See TracChangeset
for help on using the changeset viewer.
