Changeset 1897 for trunk/psLib/src/collections/psVector.c
- Timestamp:
- Sep 24, 2004, 4:06:12 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/collections/psVector.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/collections/psVector.c
r1820 r1897 10 10 * @author Robert DeSonia, MHPCC 11 11 * 12 * @version $Revision: 1.2 5$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-09- 16 23:47:43$12 * @version $Revision: 1.26 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-09-25 02:06:12 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 110 110 } 111 111 112 psVector* psVectorCopy(psVector* out, const psVector* in, psElemType type) 113 { 114 if (in == NULL) { 115 psErrorMsg(PS_ERRORNAME_DOMAIN "psVectorSort", 116 PS_ERR_BAD_PARAMETER_NULL, true, 117 PS_ERRORTEXT_psVector_SORT_NULL); 118 psFree(out); 119 return NULL; 120 } 121 122 int nElements = in->n; 123 124 out = psVectorRecycle(out, nElements, type); 125 126 #define PSVECTOR_COPY(INTYPE,OUTTYPE) { \ 127 ps##INTYPE *inVec = in->data.INTYPE; \ 128 ps##OUTTYPE *outVec = out->data.OUTTYPE; \ 129 for (int col=0;col<nElements;col++) { \ 130 *(outVec++) = *(inVec++); \ 131 } \ 132 } 133 134 #define PSVECTOR_COPY_CASE(OUTTYPE) \ 135 case PS_TYPE_##OUTTYPE: { \ 136 switch (in->type.type) { \ 137 case PS_TYPE_S8: \ 138 PSVECTOR_COPY(S8,OUTTYPE); \ 139 break; \ 140 case PS_TYPE_S16: \ 141 PSVECTOR_COPY(S16,OUTTYPE); \ 142 break; \ 143 case PS_TYPE_S32: \ 144 PSVECTOR_COPY(S32,OUTTYPE); \ 145 break; \ 146 case PS_TYPE_S64: \ 147 PSVECTOR_COPY(S64,OUTTYPE); \ 148 break; \ 149 case PS_TYPE_U8: \ 150 PSVECTOR_COPY(U8,OUTTYPE); \ 151 break; \ 152 case PS_TYPE_U16: \ 153 PSVECTOR_COPY(U16,OUTTYPE); \ 154 break; \ 155 case PS_TYPE_U32: \ 156 PSVECTOR_COPY(U32,OUTTYPE); \ 157 break; \ 158 case PS_TYPE_U64: \ 159 PSVECTOR_COPY(U64,OUTTYPE); \ 160 break; \ 161 case PS_TYPE_F32: \ 162 PSVECTOR_COPY(F32,OUTTYPE); \ 163 break; \ 164 case PS_TYPE_F64: \ 165 PSVECTOR_COPY(F64,OUTTYPE); \ 166 break; \ 167 case PS_TYPE_C32: \ 168 PSVECTOR_COPY(C32,OUTTYPE); \ 169 break; \ 170 case PS_TYPE_C64: \ 171 PSVECTOR_COPY(C64,OUTTYPE); \ 172 break; \ 173 default: { \ 174 char* typeStr; \ 175 PS_TYPE_NAME(typeStr,type); \ 176 psErrorMsg(PS_ERRORNAME_DOMAIN "psImageCopy", \ 177 PS_ERR_BAD_PARAMETER_TYPE, true, \ 178 PS_ERRORTEXT_psVector_UNSUPPORTED_TYPE, \ 179 typeStr); \ 180 psFree(out); \ 181 } \ 182 } \ 183 break; \ 184 } 185 186 switch (type) { 187 PSVECTOR_COPY_CASE(S8); 188 PSVECTOR_COPY_CASE(S16); 189 PSVECTOR_COPY_CASE(S32); 190 PSVECTOR_COPY_CASE(S64); 191 PSVECTOR_COPY_CASE(U8); 192 PSVECTOR_COPY_CASE(U16); 193 PSVECTOR_COPY_CASE(U32); 194 PSVECTOR_COPY_CASE(U64); 195 PSVECTOR_COPY_CASE(F32); 196 PSVECTOR_COPY_CASE(F64); 197 PSVECTOR_COPY_CASE(C32); 198 PSVECTOR_COPY_CASE(C64); 199 default: { 200 char* typeStr; 201 PS_TYPE_NAME(typeStr,type); 202 psErrorMsg(PS_ERRORNAME_DOMAIN "psImageCopy", 203 PS_ERR_BAD_PARAMETER_TYPE, true, 204 PS_ERRORTEXT_psVector_UNSUPPORTED_TYPE, 205 typeStr); 206 psFree(out); 207 208 break; 209 } 210 } 211 return out; 212 213 214 } 215 112 216 psVector* psVectorSort(psVector* restrict outVector, const psVector* restrict inVector) 113 217 {
Note:
See TracChangeset
for help on using the changeset viewer.
