IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 21, 2004, 8:53:10 AM (22 years ago)
Author:
harman
Message:

Added other data types

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/collections/psArray.c

    r486 r493  
    88 *  @author Ross Harman, MHPCC
    99 *   
    10  *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
    11  *  @date $Date: 2004-04-21 00:40:32 $
     10 *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
     11 *  @date $Date: 2004-04-21 18:53:10 $
    1212 *
    1313 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    179179    p_psFree(psArr, __FILE__, __LINE__);
    180180}
     181
     182psComplexArray* psComplexArrayAlloc(int nalloc)
     183{
     184    psComplexArray *psArr = (psComplexArray*)p_psAlloc(sizeof(psComplexArray), __FILE__, __LINE__);
     185    psArr->type.dimen = PS_DIMEN_VECTOR;
     186    psArr->type.type = PS_TYPE_COMPLEX;
     187    psArr->nalloc = nalloc;
     188    psArr->n = 0;
     189
     190    if(nalloc == 0) {
     191        psArr->arr = NULL;
     192    } else {
     193        psArr->arr = p_psAlloc(nalloc*sizeof(complex float), __FILE__, __LINE__);
     194    }
     195
     196    return psArr;
     197}
     198
     199psComplexArray *psComplexArrayRealloc(psComplexArray *psArr, int nalloc)
     200{
     201    if(psArr == NULL) {
     202        return psComplexArrayAlloc(nalloc);
     203    }
     204    if(nalloc <= psArr->nalloc) {
     205        if (psArr->n < nalloc) {
     206            psArr->n = nalloc;
     207        }
     208    } else {
     209        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(complex float), __FILE__, __LINE__);
     210        psArr->nalloc = nalloc;
     211    }
     212    return psArr;
     213}
     214
     215void psComplexArrayFree(psComplexArray *restrict psArr)
     216{
     217    if (psArr == NULL) {
     218        return;
     219    }
     220    p_psFree(psArr->arr, __FILE__, __LINE__);
     221    p_psFree(psArr, __FILE__, __LINE__);
     222}
     223
     224psVoidPtrArray* psVoidPtrArrayAlloc(int nalloc)
     225{
     226    psVoidPtrArray *psArr = (psVoidPtrArray*)p_psAlloc(sizeof(psVoidPtrArray), __FILE__, __LINE__);
     227    psArr->type.dimen = PS_DIMEN_VECTOR;
     228    psArr->type.type = PS_TYPE_OTHER;
     229    psArr->nalloc = nalloc;
     230    psArr->n = 0;
     231
     232    if(nalloc == 0) {
     233        psArr->arr = NULL;
     234    } else {
     235        psArr->arr = p_psAlloc(nalloc*sizeof(void*), __FILE__, __LINE__);
     236    }
     237
     238    return psArr;
     239}
     240
     241psVoidPtrArray *psVoidPtrArrayRealloc(psVoidPtrArray *psArr, int nalloc)
     242{
     243    if(psArr == NULL) {
     244        return psVoidPtrArrayAlloc(nalloc);
     245    }
     246    if(nalloc <= psArr->nalloc) {
     247        if (psArr->n < nalloc) {
     248            psArr->n = nalloc;
     249        }
     250    } else {
     251        psArr->arr = p_psRealloc(psArr->arr, nalloc*sizeof(void*), __FILE__, __LINE__);
     252        psArr->nalloc = nalloc;
     253    }
     254    return psArr;
     255}
     256
     257void psVoidPtrArrayFree(psVoidPtrArray *restrict psArr, void (*elemFree)(void *))
     258{
     259    if (psArr == NULL) {
     260        return;
     261    }
     262    p_psFree(psArr->arr, __FILE__, __LINE__);
     263    p_psFree(psArr, __FILE__, __LINE__);
     264}
Note: See TracChangeset for help on using the changeset viewer.