Changeset 502
- Timestamp:
- Apr 22, 2004, 11:15:01 AM (22 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 4 edited
-
collections/psArray.c (modified) (12 diffs)
-
collections/psArray.h (modified) (1 diff)
-
types/psArray.c (modified) (12 diffs)
-
types/psArray.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/collections/psArray.c
r495 r502 3 3 * @brief Contains support for array types 4 4 * 5 * Th e type of basic one dimensional arrays are defined hereinclude: int, float, double, complex float, and6 * void * .5 * This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and 6 * void **. 7 7 * 8 8 * @author Ross Harman, MHPCC 9 9 * 10 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-04-2 1 21:05:39$10 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-04-22 21:15:01 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 48 48 /*****************************************************************************/ 49 49 50 static void* p_psArrayAlloc(psType *arrType, psElemType elemType, int nalloc, int elemSize) 51 { 52 void *arr = NULL; 53 54 arrType->dimen = PS_DIMEN_VECTOR; 55 arrType->type = elemType; 56 57 if(nalloc != 0) { 58 arr = psAlloc(nalloc*sizeof(elemSize)); 59 } 60 61 return arr; 62 } 63 50 64 static psVoidPtrArray *p_psVoidPtrArrayRealloc(psVoidPtrArray *restrict psArr, int nalloc) 51 65 { 52 if( psArr == NULL) {53 return psVoidPtrArrayAlloc(nalloc);54 }55 if(nalloc <= psArr->nalloc) {56 if (psArr->n <nalloc) {57 psArr->n= nalloc;58 }59 } else {60 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(void*), __FILE__, __LINE__);61 psArr->nalloc = nalloc;62 } 66 if(nalloc < psArr->n) { // For decrease in psArray size 67 psArr->n = nalloc; 68 psArr->nalloc = nalloc; 69 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*)); // For increase in psArray size 70 } else if(nalloc > psArr->nalloc) { 71 psArr->nalloc = nalloc; 72 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*)); 73 } else if(psArr == NULL) { // For creating new psArray with realloc 74 psArr = psVoidPtrArrayAlloc(nalloc); 75 } 76 63 77 return psArr; 64 78 } … … 69 83 return; 70 84 } 71 p _psFree(psArr->arr, __FILE__, __LINE__);72 p _psFree(psArr, __FILE__, __LINE__);85 psFree(psArr->arr); 86 psFree(psArr); 73 87 } 74 88 … … 79 93 psIntArray* psIntArrayAlloc(int nalloc) 80 94 { 81 psIntArray *psArr = (psIntArray*)p_psAlloc(sizeof(psIntArray), __FILE__, __LINE__); 82 psArr->type.dimen = PS_DIMEN_VECTOR; 83 psArr->type.type = PS_TYPE_INT; 84 psArr->nalloc = nalloc; 85 psArr->n = 0; 86 87 if(nalloc == 0) { 88 psArr->arr = NULL; 89 } else { 90 psArr->arr = p_psAlloc(nalloc*sizeof(int), __FILE__, __LINE__); 91 } 95 psIntArray *psArr = NULL; 96 psArr = (psIntArray*)psAlloc(sizeof(psIntArray)); 97 psArr->nalloc = nalloc; 98 psArr->n = 0; 99 psArr->arr = (int*)p_psArrayAlloc(&psArr->type, PS_TYPE_INT, nalloc, sizeof(int)); 92 100 93 101 return psArr; … … 96 104 psIntArray *psIntArrayRealloc(psIntArray *psArr, int nalloc) 97 105 { 98 if( psArr == NULL) {99 return psIntArrayAlloc(nalloc);100 }101 if(nalloc <= psArr->nalloc) {102 if (psArr->n <nalloc) {103 psArr->n= nalloc;104 }105 } else {106 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(int), __FILE__, __LINE__);107 psArr->nalloc = nalloc;108 } 106 if(nalloc < psArr->n) { // For decrease in psArray size 107 psArr->n = nalloc; 108 psArr->nalloc = nalloc; 109 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int)); // For increase in psArray size 110 } else if(nalloc > psArr->nalloc) { 111 psArr->nalloc = nalloc; 112 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int)); 113 } else if(psArr == NULL) { // For creating new psArray with realloc 114 psArr = psIntArrayAlloc(nalloc); 115 } 116 109 117 return psArr; 110 118 } … … 115 123 return; 116 124 } 117 p_psFree(psArr->arr, __FILE__, __LINE__); 118 p_psFree(psArr, __FILE__, __LINE__); 125 126 psFree(psArr->arr); 127 psFree(psArr); 119 128 } 120 129 121 130 psFloatArray* psFloatArrayAlloc(int nalloc) 122 131 { 123 psFloatArray *psArr = (psFloatArray*)p_psAlloc(sizeof(psFloatArray), __FILE__, __LINE__); 124 psArr->type.dimen = PS_DIMEN_VECTOR; 125 psArr->type.type = PS_TYPE_FLOAT; 126 psArr->nalloc = nalloc; 127 psArr->n = 0; 128 129 if(nalloc == 0) { 130 psArr->arr = NULL; 131 } else { 132 psArr->arr = p_psAlloc(nalloc*sizeof(float), __FILE__, __LINE__); 133 } 132 psFloatArray *psArr = NULL; 133 psArr = (psFloatArray*)psAlloc(sizeof(psFloatArray)); 134 psArr->nalloc = nalloc; 135 psArr->n = 0; 136 psArr->arr = (float*)p_psArrayAlloc(&psArr->type, PS_TYPE_FLOAT, nalloc, sizeof(float)); 134 137 135 138 return psArr; … … 138 141 psFloatArray *psFloatArrayRealloc(psFloatArray *psArr, int nalloc) 139 142 { 140 if( psArr == NULL) {141 return psFloatArrayAlloc(nalloc);142 }143 if(nalloc <= psArr->nalloc) {144 if (psArr->n <nalloc) {145 psArr->n= nalloc;146 }147 } else {148 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(float), __FILE__, __LINE__);149 psArr->nalloc = nalloc;150 } 143 if(nalloc < psArr->n) { // For decrease in psArray size 144 psArr->n = nalloc; 145 psArr->nalloc = nalloc; 146 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float)); // For increase in psArray size 147 } else if(nalloc > psArr->nalloc) { 148 psArr->nalloc = nalloc; 149 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float)); 150 } else if(psArr == NULL) { // For creating new psArray with realloc 151 psArr = psFloatArrayAlloc(nalloc); 152 } 153 151 154 return psArr; 152 155 } … … 157 160 return; 158 161 } 159 p _psFree(psArr->arr, __FILE__, __LINE__);160 p _psFree(psArr, __FILE__, __LINE__);162 psFree(psArr->arr); 163 psFree(psArr); 161 164 } 162 165 163 166 psDoubleArray* psDoubleArrayAlloc(int nalloc) 164 167 { 165 psDoubleArray *psArr = (psDoubleArray*)p_psAlloc(sizeof(psDoubleArray), __FILE__, __LINE__); 166 psArr->type.dimen = PS_DIMEN_VECTOR; 167 psArr->type.type = PS_TYPE_DOUBLE; 168 psArr->nalloc = nalloc; 169 psArr->n = 0; 170 171 if(nalloc == 0) { 172 psArr->arr = NULL; 173 } else { 174 psArr->arr = p_psAlloc(nalloc*sizeof(double), __FILE__, __LINE__); 175 } 168 psDoubleArray *psArr = NULL; 169 psArr = (psDoubleArray*)psAlloc(sizeof(psDoubleArray)); 170 psArr->nalloc = nalloc; 171 psArr->n = 0; 172 psArr->arr = (double*)p_psArrayAlloc(&psArr->type, PS_TYPE_DOUBLE, nalloc, sizeof(double)); 176 173 177 174 return psArr; … … 180 177 psDoubleArray *psDoubleArrayRealloc(psDoubleArray *psArr, int nalloc) 181 178 { 182 if( psArr == NULL) {183 return psDoubleArrayAlloc(nalloc);184 }185 if(nalloc <= psArr->nalloc) {186 if (psArr->n <nalloc) {187 psArr->n= nalloc;188 }189 } else {190 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(double), __FILE__, __LINE__);191 psArr->nalloc = nalloc;192 } 179 if(nalloc < psArr->n) { // For decrease in psArray size 180 psArr->n = nalloc; 181 psArr->nalloc = nalloc; 182 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double)); // For increase in psArray size 183 } else if(nalloc > psArr->nalloc) { 184 psArr->nalloc = nalloc; 185 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double)); 186 } else if(psArr == NULL) { // For creating new psArray with realloc 187 psArr = psDoubleArrayAlloc(nalloc); 188 } 189 193 190 return psArr; 194 191 } … … 199 196 return; 200 197 } 201 p _psFree(psArr->arr, __FILE__, __LINE__);202 p _psFree(psArr, __FILE__, __LINE__);198 psFree(psArr->arr); 199 psFree(psArr); 203 200 } 204 201 205 202 psComplexArray* psComplexArrayAlloc(int nalloc) 206 203 { 207 psComplexArray *psArr = (psComplexArray*)p_psAlloc(sizeof(psComplexArray), __FILE__, __LINE__); 208 psArr->type.dimen = PS_DIMEN_VECTOR; 209 psArr->type.type = PS_TYPE_COMPLEX; 210 psArr->nalloc = nalloc; 211 psArr->n = 0; 212 213 if(nalloc == 0) { 214 psArr->arr = NULL; 215 } else { 216 psArr->arr = p_psAlloc(nalloc*sizeof(complex float), __FILE__, __LINE__); 217 } 204 psComplexArray *psArr = NULL; 205 psArr = (psComplexArray*)psAlloc(sizeof(psComplexArray)); 206 psArr->nalloc = nalloc; 207 psArr->n = 0; 208 psArr->arr = (complex float*)p_psArrayAlloc(&psArr->type, PS_TYPE_COMPLEX, nalloc, sizeof(complex float)); 218 209 219 210 return psArr; … … 222 213 psComplexArray *psComplexArrayRealloc(psComplexArray *psArr, int nalloc) 223 214 { 224 if( psArr == NULL) {225 return psComplexArrayAlloc(nalloc);226 }227 if(nalloc <= psArr->nalloc) {228 if (psArr->n <nalloc) {229 psArr->n= nalloc;230 }231 } else {232 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(complex float), __FILE__, __LINE__);233 psArr->nalloc = nalloc;234 } 215 if(nalloc < psArr->n) { // For decrease in psArray size 216 psArr->n = nalloc; 217 psArr->nalloc = nalloc; 218 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float)); // For increase in psArray size 219 } else if(nalloc > psArr->nalloc) { 220 psArr->nalloc = nalloc; 221 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float)); 222 } else if(psArr == NULL) { // For creating new psArray with realloc 223 psArr = psComplexArrayAlloc(nalloc); 224 } 225 235 226 return psArr; 236 227 } … … 241 232 return; 242 233 } 243 p _psFree(psArr->arr, __FILE__, __LINE__);244 p _psFree(psArr, __FILE__, __LINE__);234 psFree(psArr->arr); 235 psFree(psArr); 245 236 } 246 237 247 238 psVoidPtrArray* psVoidPtrArrayAlloc(int nalloc) 248 239 { 249 psVoidPtrArray *psArr = (psVoidPtrArray*)p_psAlloc(sizeof(psVoidPtrArray), __FILE__, __LINE__); 250 psArr->type.dimen = PS_DIMEN_VECTOR; 251 psArr->type.type = PS_TYPE_OTHER; 252 psArr->nalloc = nalloc; 253 psArr->n = 0; 254 255 if(nalloc == 0) { 256 psArr->arr = NULL; 257 } else { 258 psArr->arr = p_psAlloc(nalloc*sizeof(void*), __FILE__, __LINE__); 259 } 240 psVoidPtrArray *psArr = NULL; 241 psArr = (psVoidPtrArray*)psAlloc(sizeof(psVoidPtrArray)); 242 psArr->nalloc = nalloc; 243 psArr->n = 0; 244 psArr->arr = (void*)p_psArrayAlloc(&psArr->type, PS_TYPE_OTHER, nalloc, sizeof(void*)); 260 245 261 246 return psArr; -
trunk/psLib/src/collections/psArray.h
r495 r502 3 3 * @brief Contains support for basic array types 4 4 * 5 * Th e types of basic one dimensional arrays definedinclude: int, float, double, complex float, and6 * void * .5 * This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and 6 * void **. 7 7 * 8 8 * @author Ross Harman, MHPCC 9 9 * 10 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-04-2 1 21:05:39$10 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-04-22 21:15:01 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii -
trunk/psLib/src/types/psArray.c
r495 r502 3 3 * @brief Contains support for array types 4 4 * 5 * Th e type of basic one dimensional arrays are defined hereinclude: int, float, double, complex float, and6 * void * .5 * This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and 6 * void **. 7 7 * 8 8 * @author Ross Harman, MHPCC 9 9 * 10 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-04-2 1 21:05:39$10 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-04-22 21:15:01 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 48 48 /*****************************************************************************/ 49 49 50 static void* p_psArrayAlloc(psType *arrType, psElemType elemType, int nalloc, int elemSize) 51 { 52 void *arr = NULL; 53 54 arrType->dimen = PS_DIMEN_VECTOR; 55 arrType->type = elemType; 56 57 if(nalloc != 0) { 58 arr = psAlloc(nalloc*sizeof(elemSize)); 59 } 60 61 return arr; 62 } 63 50 64 static psVoidPtrArray *p_psVoidPtrArrayRealloc(psVoidPtrArray *restrict psArr, int nalloc) 51 65 { 52 if( psArr == NULL) {53 return psVoidPtrArrayAlloc(nalloc);54 }55 if(nalloc <= psArr->nalloc) {56 if (psArr->n <nalloc) {57 psArr->n= nalloc;58 }59 } else {60 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(void*), __FILE__, __LINE__);61 psArr->nalloc = nalloc;62 } 66 if(nalloc < psArr->n) { // For decrease in psArray size 67 psArr->n = nalloc; 68 psArr->nalloc = nalloc; 69 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*)); // For increase in psArray size 70 } else if(nalloc > psArr->nalloc) { 71 psArr->nalloc = nalloc; 72 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(void*)); 73 } else if(psArr == NULL) { // For creating new psArray with realloc 74 psArr = psVoidPtrArrayAlloc(nalloc); 75 } 76 63 77 return psArr; 64 78 } … … 69 83 return; 70 84 } 71 p _psFree(psArr->arr, __FILE__, __LINE__);72 p _psFree(psArr, __FILE__, __LINE__);85 psFree(psArr->arr); 86 psFree(psArr); 73 87 } 74 88 … … 79 93 psIntArray* psIntArrayAlloc(int nalloc) 80 94 { 81 psIntArray *psArr = (psIntArray*)p_psAlloc(sizeof(psIntArray), __FILE__, __LINE__); 82 psArr->type.dimen = PS_DIMEN_VECTOR; 83 psArr->type.type = PS_TYPE_INT; 84 psArr->nalloc = nalloc; 85 psArr->n = 0; 86 87 if(nalloc == 0) { 88 psArr->arr = NULL; 89 } else { 90 psArr->arr = p_psAlloc(nalloc*sizeof(int), __FILE__, __LINE__); 91 } 95 psIntArray *psArr = NULL; 96 psArr = (psIntArray*)psAlloc(sizeof(psIntArray)); 97 psArr->nalloc = nalloc; 98 psArr->n = 0; 99 psArr->arr = (int*)p_psArrayAlloc(&psArr->type, PS_TYPE_INT, nalloc, sizeof(int)); 92 100 93 101 return psArr; … … 96 104 psIntArray *psIntArrayRealloc(psIntArray *psArr, int nalloc) 97 105 { 98 if( psArr == NULL) {99 return psIntArrayAlloc(nalloc);100 }101 if(nalloc <= psArr->nalloc) {102 if (psArr->n <nalloc) {103 psArr->n= nalloc;104 }105 } else {106 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(int), __FILE__, __LINE__);107 psArr->nalloc = nalloc;108 } 106 if(nalloc < psArr->n) { // For decrease in psArray size 107 psArr->n = nalloc; 108 psArr->nalloc = nalloc; 109 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int)); // For increase in psArray size 110 } else if(nalloc > psArr->nalloc) { 111 psArr->nalloc = nalloc; 112 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(int)); 113 } else if(psArr == NULL) { // For creating new psArray with realloc 114 psArr = psIntArrayAlloc(nalloc); 115 } 116 109 117 return psArr; 110 118 } … … 115 123 return; 116 124 } 117 p_psFree(psArr->arr, __FILE__, __LINE__); 118 p_psFree(psArr, __FILE__, __LINE__); 125 126 psFree(psArr->arr); 127 psFree(psArr); 119 128 } 120 129 121 130 psFloatArray* psFloatArrayAlloc(int nalloc) 122 131 { 123 psFloatArray *psArr = (psFloatArray*)p_psAlloc(sizeof(psFloatArray), __FILE__, __LINE__); 124 psArr->type.dimen = PS_DIMEN_VECTOR; 125 psArr->type.type = PS_TYPE_FLOAT; 126 psArr->nalloc = nalloc; 127 psArr->n = 0; 128 129 if(nalloc == 0) { 130 psArr->arr = NULL; 131 } else { 132 psArr->arr = p_psAlloc(nalloc*sizeof(float), __FILE__, __LINE__); 133 } 132 psFloatArray *psArr = NULL; 133 psArr = (psFloatArray*)psAlloc(sizeof(psFloatArray)); 134 psArr->nalloc = nalloc; 135 psArr->n = 0; 136 psArr->arr = (float*)p_psArrayAlloc(&psArr->type, PS_TYPE_FLOAT, nalloc, sizeof(float)); 134 137 135 138 return psArr; … … 138 141 psFloatArray *psFloatArrayRealloc(psFloatArray *psArr, int nalloc) 139 142 { 140 if( psArr == NULL) {141 return psFloatArrayAlloc(nalloc);142 }143 if(nalloc <= psArr->nalloc) {144 if (psArr->n <nalloc) {145 psArr->n= nalloc;146 }147 } else {148 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(float), __FILE__, __LINE__);149 psArr->nalloc = nalloc;150 } 143 if(nalloc < psArr->n) { // For decrease in psArray size 144 psArr->n = nalloc; 145 psArr->nalloc = nalloc; 146 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float)); // For increase in psArray size 147 } else if(nalloc > psArr->nalloc) { 148 psArr->nalloc = nalloc; 149 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(float)); 150 } else if(psArr == NULL) { // For creating new psArray with realloc 151 psArr = psFloatArrayAlloc(nalloc); 152 } 153 151 154 return psArr; 152 155 } … … 157 160 return; 158 161 } 159 p _psFree(psArr->arr, __FILE__, __LINE__);160 p _psFree(psArr, __FILE__, __LINE__);162 psFree(psArr->arr); 163 psFree(psArr); 161 164 } 162 165 163 166 psDoubleArray* psDoubleArrayAlloc(int nalloc) 164 167 { 165 psDoubleArray *psArr = (psDoubleArray*)p_psAlloc(sizeof(psDoubleArray), __FILE__, __LINE__); 166 psArr->type.dimen = PS_DIMEN_VECTOR; 167 psArr->type.type = PS_TYPE_DOUBLE; 168 psArr->nalloc = nalloc; 169 psArr->n = 0; 170 171 if(nalloc == 0) { 172 psArr->arr = NULL; 173 } else { 174 psArr->arr = p_psAlloc(nalloc*sizeof(double), __FILE__, __LINE__); 175 } 168 psDoubleArray *psArr = NULL; 169 psArr = (psDoubleArray*)psAlloc(sizeof(psDoubleArray)); 170 psArr->nalloc = nalloc; 171 psArr->n = 0; 172 psArr->arr = (double*)p_psArrayAlloc(&psArr->type, PS_TYPE_DOUBLE, nalloc, sizeof(double)); 176 173 177 174 return psArr; … … 180 177 psDoubleArray *psDoubleArrayRealloc(psDoubleArray *psArr, int nalloc) 181 178 { 182 if( psArr == NULL) {183 return psDoubleArrayAlloc(nalloc);184 }185 if(nalloc <= psArr->nalloc) {186 if (psArr->n <nalloc) {187 psArr->n= nalloc;188 }189 } else {190 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(double), __FILE__, __LINE__);191 psArr->nalloc = nalloc;192 } 179 if(nalloc < psArr->n) { // For decrease in psArray size 180 psArr->n = nalloc; 181 psArr->nalloc = nalloc; 182 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double)); // For increase in psArray size 183 } else if(nalloc > psArr->nalloc) { 184 psArr->nalloc = nalloc; 185 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(double)); 186 } else if(psArr == NULL) { // For creating new psArray with realloc 187 psArr = psDoubleArrayAlloc(nalloc); 188 } 189 193 190 return psArr; 194 191 } … … 199 196 return; 200 197 } 201 p _psFree(psArr->arr, __FILE__, __LINE__);202 p _psFree(psArr, __FILE__, __LINE__);198 psFree(psArr->arr); 199 psFree(psArr); 203 200 } 204 201 205 202 psComplexArray* psComplexArrayAlloc(int nalloc) 206 203 { 207 psComplexArray *psArr = (psComplexArray*)p_psAlloc(sizeof(psComplexArray), __FILE__, __LINE__); 208 psArr->type.dimen = PS_DIMEN_VECTOR; 209 psArr->type.type = PS_TYPE_COMPLEX; 210 psArr->nalloc = nalloc; 211 psArr->n = 0; 212 213 if(nalloc == 0) { 214 psArr->arr = NULL; 215 } else { 216 psArr->arr = p_psAlloc(nalloc*sizeof(complex float), __FILE__, __LINE__); 217 } 204 psComplexArray *psArr = NULL; 205 psArr = (psComplexArray*)psAlloc(sizeof(psComplexArray)); 206 psArr->nalloc = nalloc; 207 psArr->n = 0; 208 psArr->arr = (complex float*)p_psArrayAlloc(&psArr->type, PS_TYPE_COMPLEX, nalloc, sizeof(complex float)); 218 209 219 210 return psArr; … … 222 213 psComplexArray *psComplexArrayRealloc(psComplexArray *psArr, int nalloc) 223 214 { 224 if( psArr == NULL) {225 return psComplexArrayAlloc(nalloc);226 }227 if(nalloc <= psArr->nalloc) {228 if (psArr->n <nalloc) {229 psArr->n= nalloc;230 }231 } else {232 psArr ->arr = p_psRealloc(psArr->arr, nalloc*sizeof(complex float), __FILE__, __LINE__);233 psArr->nalloc = nalloc;234 } 215 if(nalloc < psArr->n) { // For decrease in psArray size 216 psArr->n = nalloc; 217 psArr->nalloc = nalloc; 218 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float)); // For increase in psArray size 219 } else if(nalloc > psArr->nalloc) { 220 psArr->nalloc = nalloc; 221 psArr->arr = psRealloc(psArr->arr, nalloc*sizeof(complex float)); 222 } else if(psArr == NULL) { // For creating new psArray with realloc 223 psArr = psComplexArrayAlloc(nalloc); 224 } 225 235 226 return psArr; 236 227 } … … 241 232 return; 242 233 } 243 p _psFree(psArr->arr, __FILE__, __LINE__);244 p _psFree(psArr, __FILE__, __LINE__);234 psFree(psArr->arr); 235 psFree(psArr); 245 236 } 246 237 247 238 psVoidPtrArray* psVoidPtrArrayAlloc(int nalloc) 248 239 { 249 psVoidPtrArray *psArr = (psVoidPtrArray*)p_psAlloc(sizeof(psVoidPtrArray), __FILE__, __LINE__); 250 psArr->type.dimen = PS_DIMEN_VECTOR; 251 psArr->type.type = PS_TYPE_OTHER; 252 psArr->nalloc = nalloc; 253 psArr->n = 0; 254 255 if(nalloc == 0) { 256 psArr->arr = NULL; 257 } else { 258 psArr->arr = p_psAlloc(nalloc*sizeof(void*), __FILE__, __LINE__); 259 } 240 psVoidPtrArray *psArr = NULL; 241 psArr = (psVoidPtrArray*)psAlloc(sizeof(psVoidPtrArray)); 242 psArr->nalloc = nalloc; 243 psArr->n = 0; 244 psArr->arr = (void*)p_psArrayAlloc(&psArr->type, PS_TYPE_OTHER, nalloc, sizeof(void*)); 260 245 261 246 return psArr; -
trunk/psLib/src/types/psArray.h
r495 r502 3 3 * @brief Contains support for basic array types 4 4 * 5 * Th e types of basic one dimensional arrays definedinclude: int, float, double, complex float, and6 * void * .5 * This file defines basic types of one dimensional arrays which include: int, float, double, complex float, and 6 * void **. 7 7 * 8 8 * @author Ross Harman, MHPCC 9 9 * 10 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-04-2 1 21:05:39$10 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-04-22 21:15:01 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii
Note:
See TracChangeset
for help on using the changeset viewer.
