Changeset 3313
- Timestamp:
- Feb 23, 2005, 2:19:51 PM (21 years ago)
- Location:
- trunk/psLib
- Files:
-
- 9 edited
-
src/dataManip/psConstants.h (modified) (2 diffs)
-
src/dataManip/psMatrix.c (modified) (16 diffs)
-
src/image/psImageExtraction.c (modified) (2 diffs)
-
src/math/psConstants.h (modified) (2 diffs)
-
src/math/psMatrix.c (modified) (16 diffs)
-
test/dataManip/tst_psMatrix02.c (modified) (2 diffs)
-
test/dataManip/tst_psMatrix03.c (modified) (4 diffs)
-
test/dataManip/tst_psMatrix07.c (modified) (4 diffs)
-
test/dataManip/verified/tst_psMatrix02.stdout (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psConstants.h
r3264 r3313 6 6 * @author GLG, MHPCC 7 7 * 8 * @version $Revision: 1.5 5$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-02- 17 19:26:23$8 * @version $Revision: 1.56 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-02-24 00:19:51 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 198 198 } \ 199 199 200 #define PS_VECTOR_CHECK_EMPTY(NAME, RVAL) \ 200 #define PS_VECTOR_CHECK_EMPTY(NAME, RVAL) PS_VECTOR_CHECK_EMPTY_GENERAL(NAME, return RVAL) 201 #define PS_VECTOR_CHECK_EMPTY_GENERAL(NAME, CLEANUP) \ 201 202 if (NAME->n < 1) { \ 202 203 psError(PS_ERR_BAD_PARAMETER_SIZE, true, \ 203 204 "Unallowable operation: psVector %s has no elements.", \ 204 205 #NAME); \ 205 return(RVAL); \206 CLEANUP; \ 206 207 } \ 207 208 -
trunk/psLib/src/dataManip/psMatrix.c
r3290 r3313 21 21 * @author Robert DeSonia, MHPCC 22 22 * 23 * @version $Revision: 1.2 4$ $Name: not supported by cvs2svn $24 * @date $Date: 2005-02- 19 00:30:07$23 * @version $Revision: 1.25 $ $Name: not supported by cvs2svn $ 24 * @date $Date: 2005-02-24 00:19:51 $ 25 25 * 26 26 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 50 50 51 51 /** Preprocessor macro to generate error for image dimensionality not set to PS_DIMEN_IMAGE */ 52 #define PS_CHECK_DIMEN_AND_TYPE(NAME, PS_DIMEN, RETURN) \52 #define PS_CHECK_DIMEN_AND_TYPE(NAME, PS_DIMEN, CLEANUP) \ 53 53 if (NAME->type.dimen != PS_DIMEN) { \ 54 54 psError(PS_ERR_BAD_PARAMETER_TYPE, true, \ 55 55 "Invalid operation. %s has incorrect dimensionality %d.", #NAME, PS_DIMEN); \ 56 return RETURN; \56 CLEANUP; \ 57 57 } else if(NAME->type.type!=PS_TYPE_F64 && NAME->type.type!=PS_TYPE_F32) { \ 58 58 psError(PS_ERR_BAD_PARAMETER_TYPE, true, \ 59 59 "Invalid operation. %s not PS_TYPE_F64.", #NAME); \ 60 return RETURN; \60 CLEANUP; \ 61 61 } 62 62 63 63 /** Preprocessor macro to check that input is not equal to output */ 64 #define PS_CHECK_POINTERS(NAME1, NAME2, RETURN) \64 #define PS_CHECK_POINTERS(NAME1, NAME2, CLEANUP) \ 65 65 if (NAME1 == NAME2) { \ 66 66 psError(PS_ERR_BAD_PARAMETER_VALUE, true, \ 67 67 "Invalid operation: Pointer to %s is same as %s.", #NAME1, #NAME2); \ 68 return RETURN; \68 CLEANUP; \ 69 69 } 70 70 71 71 /** Preprocessor macro to check that an image is square */ 72 #define PS_CHECK_SQUARE(NAME, RETURN) \72 #define PS_CHECK_SQUARE(NAME, CLEANUP) \ 73 73 if (NAME->numCols != NAME->numRows) { \ 74 74 psError(PS_ERR_BAD_PARAMETER_SIZE, true, "Invalid operation: %s not square array.", #NAME); \ 75 return RETURN; \75 CLEANUP; \ 76 76 } 77 77 … … 189 189 // Error checks 190 190 PS_IMAGE_CHECK_NULL_GENERAL(inImage, psMatrixLUD_EXIT); 191 PS_CHECK_POINTERS(inImage, outImage, outImage);192 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage);191 PS_CHECK_POINTERS(inImage, outImage, psMatrixLUD_EXIT); 192 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, psMatrixLUD_EXIT); 193 193 PS_PTR_CHECK_NULL_GENERAL(outPerm, psMatrixLUD_EXIT); 194 194 195 195 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); 196 196 197 PS_CHECK_SQUARE(inImage, outImage);198 PS_CHECK_SQUARE(outImage, outImage);197 PS_CHECK_SQUARE(inImage, psMatrixLUD_EXIT); 198 PS_CHECK_SQUARE(outImage, psMatrixLUD_EXIT); 199 199 200 200 // Initialize data … … 244 244 gsl_vector *x = NULL; 245 245 246 // Error checks 247 PS_CHECK_POINTERS(outVector, inVector, outVector); 248 PS_CHECK_POINTERS(inVector, inPerm, outVector); 249 PS_CHECK_POINTERS(outVector, inPerm, outVector); 250 PS_IMAGE_CHECK_NULL(inImage, outVector); 251 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outVector); 252 PS_IMAGE_CHECK_EMPTY(inImage, outVector); 253 PS_VECTOR_CHECK_NULL(outVector, outVector); 254 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_VECTOR, outVector); 255 PS_VECTOR_CHECK_NULL(inVector, outVector); 256 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, outVector); 257 PS_VECTOR_CHECK_NULL(inPerm, outVector); 258 psVectorRecycle(outVector, inImage->numRows, inImage->type.type); 246 #define LUSOLVE_CLEANUP {psFree(outVector); return NULL;} 247 248 // Error checks 249 PS_IMAGE_CHECK_NULL_GENERAL(inImage, LUSOLVE_CLEANUP); 250 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, LUSOLVE_CLEANUP); 251 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, LUSOLVE_CLEANUP); 252 PS_VECTOR_CHECK_NULL_GENERAL(inVector, LUSOLVE_CLEANUP); 253 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, LUSOLVE_CLEANUP); 254 PS_VECTOR_CHECK_NULL_GENERAL(inPerm, LUSOLVE_CLEANUP); 255 256 outVector = psVectorRecycle(outVector, inImage->numRows, inImage->type.type); 257 258 PS_CHECK_POINTERS(outVector, inVector, LUSOLVE_CLEANUP); 259 PS_CHECK_POINTERS(inVector, inPerm, LUSOLVE_CLEANUP); 260 PS_CHECK_POINTERS(outVector, inPerm, LUSOLVE_CLEANUP); 259 261 260 262 // Initialize data … … 296 298 gsl_permutation *perm = NULL; 297 299 298 // Error checks 299 PS_PTR_CHECK_NULL(det, outImage); 300 PS_CHECK_POINTERS(inImage, outImage, outImage); 301 PS_IMAGE_CHECK_NULL(inImage, outImage); 302 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage); 303 PS_IMAGE_CHECK_EMPTY(inImage, outImage); 300 #define INVERT_CLEANUP { psFree(outImage); return NULL; } 301 // Error checks 302 PS_PTR_CHECK_NULL_GENERAL(det, INVERT_CLEANUP); 303 PS_IMAGE_CHECK_NULL_GENERAL(inImage, INVERT_CLEANUP); 304 PS_CHECK_POINTERS(inImage, outImage, INVERT_CLEANUP); 305 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, INVERT_CLEANUP); 306 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, INVERT_CLEANUP); 307 304 308 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); 305 PS_CHECK_SQUARE(inImage, outImage); 306 PS_CHECK_SQUARE(outImage, outImage); 309 310 PS_CHECK_SQUARE(inImage, INVERT_CLEANUP); 311 PS_CHECK_SQUARE(outImage, INVERT_CLEANUP); 307 312 308 313 // Initialize data … … 341 346 gsl_permutation *perm = NULL; 342 347 343 // Error checks 344 PS_IMAGE_CHECK_NULL(inImage, NULL); 345 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, NULL); 346 PS_IMAGE_CHECK_EMPTY(inImage, NULL); 347 PS_CHECK_SQUARE(inImage, 0); 348 #define DETERMINANT_EXIT { return NULL; } 349 // Error checks 350 PS_IMAGE_CHECK_NULL_GENERAL(inImage, DETERMINANT_EXIT); 351 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, DETERMINANT_EXIT); 352 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, DETERMINANT_EXIT); 353 PS_CHECK_SQUARE(inImage, DETERMINANT_EXIT); 348 354 349 355 // Initialize data … … 376 382 gsl_matrix *m3 = NULL; 377 383 378 // Error checks 379 PS_CHECK_POINTERS(inImage1, outImage, outImage); 380 PS_CHECK_POINTERS(inImage1, inImage2, outImage); 381 PS_IMAGE_CHECK_NULL(inImage1, outImage); 382 PS_CHECK_DIMEN_AND_TYPE(inImage1, PS_DIMEN_IMAGE, outImage); 383 PS_IMAGE_CHECK_EMPTY(inImage1, outImage); 384 PS_IMAGE_CHECK_NULL(inImage2, outImage); 385 PS_CHECK_DIMEN_AND_TYPE(inImage2, PS_DIMEN_IMAGE, outImage); 386 PS_IMAGE_CHECK_EMPTY(inImage2, outImage); 387 PS_CHECK_DIMEN_AND_TYPE(inImage1, PS_DIMEN_IMAGE, outImage); 384 #define MULTIPLY_CLEANUP { psFree(outImage); return NULL; } 385 386 // Error checks 387 PS_IMAGE_CHECK_NULL_GENERAL(inImage1, MULTIPLY_CLEANUP); 388 PS_IMAGE_CHECK_NULL_GENERAL(inImage2, MULTIPLY_CLEANUP); 389 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage1, MULTIPLY_CLEANUP); 390 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage2, MULTIPLY_CLEANUP); 391 PS_CHECK_DIMEN_AND_TYPE(inImage1, PS_DIMEN_IMAGE, MULTIPLY_CLEANUP); 392 PS_CHECK_DIMEN_AND_TYPE(inImage2, PS_DIMEN_IMAGE, MULTIPLY_CLEANUP); 393 PS_CHECK_POINTERS(inImage1, outImage, MULTIPLY_CLEANUP); 394 PS_CHECK_POINTERS(inImage1, inImage2, MULTIPLY_CLEANUP); 388 395 389 396 outImage = psImageRecycle(outImage, inImage2->numCols, inImage2->numRows, inImage2->type.type); 390 397 391 PS_CHECK_SQUARE(inImage1, outImage);392 PS_CHECK_SQUARE(inImage2, outImage);393 PS_CHECK_SQUARE(outImage, outImage);398 PS_CHECK_SQUARE(inImage1, MULTIPLY_CLEANUP); 399 PS_CHECK_SQUARE(inImage2, MULTIPLY_CLEANUP); 400 PS_CHECK_SQUARE(outImage, MULTIPLY_CLEANUP); 394 401 395 402 // Initialize data … … 428 435 psS32 numColsOut = 0; 429 436 430 431 // Error checks 432 PS_CHECK_POINTERS(inImage, outImage, outImage); 433 PS_IMAGE_CHECK_NULL(inImage, outImage); 434 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage); 435 PS_IMAGE_CHECK_EMPTY(inImage, outImage); 437 #define TRANSPOSE_CLEANUP { psFree(outImage); return NULL; } 438 // Error checks 439 PS_IMAGE_CHECK_NULL_GENERAL(inImage, TRANSPOSE_CLEANUP); 440 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, TRANSPOSE_CLEANUP); 441 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, TRANSPOSE_CLEANUP); 442 PS_CHECK_POINTERS(inImage, outImage, TRANSPOSE_CLEANUP); 443 436 444 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); 437 445 … … 472 480 gsl_matrix *in = NULL; 473 481 474 475 // Error checks 476 PS_ CHECK_POINTERS(inImage, outImage, outImage);477 PS_ IMAGE_CHECK_NULL(inImage, outImage);478 PS_ CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage);479 PS_ IMAGE_CHECK_EMPTY(inImage, outImage);482 #define EIGENVECTORS_CLEANUP { psFree(outImage); return NULL; } 483 // Error checks 484 PS_IMAGE_CHECK_NULL_GENERAL(inImage, EIGENVECTORS_CLEANUP); 485 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, EIGENVECTORS_CLEANUP); 486 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, EIGENVECTORS_CLEANUP); 487 PS_CHECK_POINTERS(inImage, outImage, EIGENVECTORS_CLEANUP); 480 488 481 489 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); … … 494 502 495 503 // Non-square matrices not allowed 496 PS_CHECK_SQUARE(inImage, outImage);497 PS_CHECK_SQUARE(outImage, outImage);504 PS_CHECK_SQUARE(inImage, EIGENVECTORS_CLEANUP); 505 PS_CHECK_SQUARE(outImage, EIGENVECTORS_CLEANUP); 498 506 499 507 // Calculate Eigenvalues and Eigenvectors...Eigenvalues not currently used … … 520 528 // Error checks 521 529 PS_IMAGE_CHECK_NULL_GENERAL(inImage, psMatrixToVector_EXIT); 522 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outVector);530 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, psMatrixToVector_EXIT); 523 531 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, psMatrixToVector_EXIT); 524 532 525 533 if (inImage->numRows == 1) { 526 534 // Create transposed row vector 527 psVectorRecycle(outVector, inImage->numCols, inImage->type.type);535 outVector = psVectorRecycle(outVector, inImage->numCols, inImage->type.type); 528 536 outVector->type.dimen = PS_DIMEN_TRANSV; 529 537 } else if (inImage->numCols == 1) { 530 538 // Create non-transposed column vector 531 psVectorRecycle(outVector, inImage->numRows, inImage->type.type);539 outVector = psVectorRecycle(outVector, inImage->numRows, inImage->type.type); 532 540 } else { 533 541 psError(PS_ERR_BAD_PARAMETER_SIZE, true, … … 537 545 } 538 546 539 PS_VECTOR_CHECK_NULL(outVector, outVector);540 541 547 // More checks 542 548 if (outVector->type.dimen == PS_DIMEN_VECTOR) { 543 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_VECTOR, outVector);549 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_VECTOR, psMatrixToVector_EXIT); 544 550 545 551 if (outVector->n == 0) { … … 557 563 558 564 } else if (outVector->type.dimen == PS_DIMEN_TRANSV) { 559 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_TRANSV, outVector);565 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_TRANSV, psMatrixToVector_EXIT); 560 566 561 567 if (outVector->n == 0) { … … 582 588 psS32 size = 0; 583 589 584 // Error checks 585 PS_VECTOR_CHECK_NULL(inVector, outImage); 590 #define VECTORTOMATRIX_CLEANUP {psFree(outImage); return NULL; } 591 // Error checks 592 PS_VECTOR_CHECK_NULL_GENERAL(inVector, VECTORTOMATRIX_CLEANUP); 586 593 587 594 if (inVector->type.dimen == PS_DIMEN_VECTOR) { 588 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, outImage); 589 PS_VECTOR_CHECK_EMPTY(inVector, outImage); 595 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, VECTORTOMATRIX_CLEANUP); 596 PS_VECTOR_CHECK_EMPTY_GENERAL(inVector, VECTORTOMATRIX_CLEANUP); 597 590 598 outImage = psImageRecycle(outImage, 1, inVector->n, inVector->type.type); 599 591 600 // More checks for PS_DIMEN_VECTOR 592 601 if (outImage->numCols > 1) { … … 605 614 606 615 } else if (inVector->type.dimen == PS_DIMEN_TRANSV) { 607 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_TRANSV, outImage);608 PS_VECTOR_CHECK_EMPTY (inVector, outImage);616 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_TRANSV, VECTORTOMATRIX_CLEANUP); 617 PS_VECTOR_CHECK_EMPTY_GENERAL(inVector, VECTORTOMATRIX_CLEANUP); 609 618 outImage = psImageRecycle(outImage, inVector->n, 1, inVector->type.type); 610 619 // More checks for PS_DIMEN_TRANSV … … 624 633 } 625 634 626 PS_IMAGE_CHECK_NULL (outImage, outImage);627 PS_CHECK_DIMEN_AND_TYPE(outImage, PS_DIMEN_IMAGE, outImage);635 PS_IMAGE_CHECK_NULL_GENERAL(outImage, VECTORTOMATRIX_CLEANUP); 636 PS_CHECK_DIMEN_AND_TYPE(outImage, PS_DIMEN_IMAGE, VECTORTOMATRIX_CLEANUP); 628 637 629 638 memcpy(outImage->data.V[0], inVector->data.V, size); -
trunk/psLib/src/image/psImageExtraction.c
r3309 r3313 9 9 * @author Robert DeSonia, MHPCC 10 10 * 11 * @version $Revision: 1.3 1$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-02-2 3 21:32:40$11 * @version $Revision: 1.32 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-02-24 00:19:51 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 556 556 psF32* cutRowsData = NULL; 557 557 if (cutCols != NULL) { 558 (void)psVectorRecycle(cutCols, nSamples, PS_TYPE_F32);558 cutCols = psVectorRecycle(cutCols, nSamples, PS_TYPE_F32); 559 559 cutColsData = cutCols->data.F32; 560 560 } 561 561 if (cutRows != NULL) { 562 (void)psVectorRecycle(cutRows, nSamples, PS_TYPE_F32);562 cutRows = psVectorRecycle(cutRows, nSamples, PS_TYPE_F32); 563 563 cutRowsData = cutRows->data.F32; 564 564 } -
trunk/psLib/src/math/psConstants.h
r3264 r3313 6 6 * @author GLG, MHPCC 7 7 * 8 * @version $Revision: 1.5 5$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-02- 17 19:26:23$8 * @version $Revision: 1.56 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-02-24 00:19:51 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 198 198 } \ 199 199 200 #define PS_VECTOR_CHECK_EMPTY(NAME, RVAL) \ 200 #define PS_VECTOR_CHECK_EMPTY(NAME, RVAL) PS_VECTOR_CHECK_EMPTY_GENERAL(NAME, return RVAL) 201 #define PS_VECTOR_CHECK_EMPTY_GENERAL(NAME, CLEANUP) \ 201 202 if (NAME->n < 1) { \ 202 203 psError(PS_ERR_BAD_PARAMETER_SIZE, true, \ 203 204 "Unallowable operation: psVector %s has no elements.", \ 204 205 #NAME); \ 205 return(RVAL); \206 CLEANUP; \ 206 207 } \ 207 208 -
trunk/psLib/src/math/psMatrix.c
r3290 r3313 21 21 * @author Robert DeSonia, MHPCC 22 22 * 23 * @version $Revision: 1.2 4$ $Name: not supported by cvs2svn $24 * @date $Date: 2005-02- 19 00:30:07$23 * @version $Revision: 1.25 $ $Name: not supported by cvs2svn $ 24 * @date $Date: 2005-02-24 00:19:51 $ 25 25 * 26 26 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 50 50 51 51 /** Preprocessor macro to generate error for image dimensionality not set to PS_DIMEN_IMAGE */ 52 #define PS_CHECK_DIMEN_AND_TYPE(NAME, PS_DIMEN, RETURN) \52 #define PS_CHECK_DIMEN_AND_TYPE(NAME, PS_DIMEN, CLEANUP) \ 53 53 if (NAME->type.dimen != PS_DIMEN) { \ 54 54 psError(PS_ERR_BAD_PARAMETER_TYPE, true, \ 55 55 "Invalid operation. %s has incorrect dimensionality %d.", #NAME, PS_DIMEN); \ 56 return RETURN; \56 CLEANUP; \ 57 57 } else if(NAME->type.type!=PS_TYPE_F64 && NAME->type.type!=PS_TYPE_F32) { \ 58 58 psError(PS_ERR_BAD_PARAMETER_TYPE, true, \ 59 59 "Invalid operation. %s not PS_TYPE_F64.", #NAME); \ 60 return RETURN; \60 CLEANUP; \ 61 61 } 62 62 63 63 /** Preprocessor macro to check that input is not equal to output */ 64 #define PS_CHECK_POINTERS(NAME1, NAME2, RETURN) \64 #define PS_CHECK_POINTERS(NAME1, NAME2, CLEANUP) \ 65 65 if (NAME1 == NAME2) { \ 66 66 psError(PS_ERR_BAD_PARAMETER_VALUE, true, \ 67 67 "Invalid operation: Pointer to %s is same as %s.", #NAME1, #NAME2); \ 68 return RETURN; \68 CLEANUP; \ 69 69 } 70 70 71 71 /** Preprocessor macro to check that an image is square */ 72 #define PS_CHECK_SQUARE(NAME, RETURN) \72 #define PS_CHECK_SQUARE(NAME, CLEANUP) \ 73 73 if (NAME->numCols != NAME->numRows) { \ 74 74 psError(PS_ERR_BAD_PARAMETER_SIZE, true, "Invalid operation: %s not square array.", #NAME); \ 75 return RETURN; \75 CLEANUP; \ 76 76 } 77 77 … … 189 189 // Error checks 190 190 PS_IMAGE_CHECK_NULL_GENERAL(inImage, psMatrixLUD_EXIT); 191 PS_CHECK_POINTERS(inImage, outImage, outImage);192 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage);191 PS_CHECK_POINTERS(inImage, outImage, psMatrixLUD_EXIT); 192 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, psMatrixLUD_EXIT); 193 193 PS_PTR_CHECK_NULL_GENERAL(outPerm, psMatrixLUD_EXIT); 194 194 195 195 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); 196 196 197 PS_CHECK_SQUARE(inImage, outImage);198 PS_CHECK_SQUARE(outImage, outImage);197 PS_CHECK_SQUARE(inImage, psMatrixLUD_EXIT); 198 PS_CHECK_SQUARE(outImage, psMatrixLUD_EXIT); 199 199 200 200 // Initialize data … … 244 244 gsl_vector *x = NULL; 245 245 246 // Error checks 247 PS_CHECK_POINTERS(outVector, inVector, outVector); 248 PS_CHECK_POINTERS(inVector, inPerm, outVector); 249 PS_CHECK_POINTERS(outVector, inPerm, outVector); 250 PS_IMAGE_CHECK_NULL(inImage, outVector); 251 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outVector); 252 PS_IMAGE_CHECK_EMPTY(inImage, outVector); 253 PS_VECTOR_CHECK_NULL(outVector, outVector); 254 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_VECTOR, outVector); 255 PS_VECTOR_CHECK_NULL(inVector, outVector); 256 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, outVector); 257 PS_VECTOR_CHECK_NULL(inPerm, outVector); 258 psVectorRecycle(outVector, inImage->numRows, inImage->type.type); 246 #define LUSOLVE_CLEANUP {psFree(outVector); return NULL;} 247 248 // Error checks 249 PS_IMAGE_CHECK_NULL_GENERAL(inImage, LUSOLVE_CLEANUP); 250 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, LUSOLVE_CLEANUP); 251 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, LUSOLVE_CLEANUP); 252 PS_VECTOR_CHECK_NULL_GENERAL(inVector, LUSOLVE_CLEANUP); 253 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, LUSOLVE_CLEANUP); 254 PS_VECTOR_CHECK_NULL_GENERAL(inPerm, LUSOLVE_CLEANUP); 255 256 outVector = psVectorRecycle(outVector, inImage->numRows, inImage->type.type); 257 258 PS_CHECK_POINTERS(outVector, inVector, LUSOLVE_CLEANUP); 259 PS_CHECK_POINTERS(inVector, inPerm, LUSOLVE_CLEANUP); 260 PS_CHECK_POINTERS(outVector, inPerm, LUSOLVE_CLEANUP); 259 261 260 262 // Initialize data … … 296 298 gsl_permutation *perm = NULL; 297 299 298 // Error checks 299 PS_PTR_CHECK_NULL(det, outImage); 300 PS_CHECK_POINTERS(inImage, outImage, outImage); 301 PS_IMAGE_CHECK_NULL(inImage, outImage); 302 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage); 303 PS_IMAGE_CHECK_EMPTY(inImage, outImage); 300 #define INVERT_CLEANUP { psFree(outImage); return NULL; } 301 // Error checks 302 PS_PTR_CHECK_NULL_GENERAL(det, INVERT_CLEANUP); 303 PS_IMAGE_CHECK_NULL_GENERAL(inImage, INVERT_CLEANUP); 304 PS_CHECK_POINTERS(inImage, outImage, INVERT_CLEANUP); 305 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, INVERT_CLEANUP); 306 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, INVERT_CLEANUP); 307 304 308 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); 305 PS_CHECK_SQUARE(inImage, outImage); 306 PS_CHECK_SQUARE(outImage, outImage); 309 310 PS_CHECK_SQUARE(inImage, INVERT_CLEANUP); 311 PS_CHECK_SQUARE(outImage, INVERT_CLEANUP); 307 312 308 313 // Initialize data … … 341 346 gsl_permutation *perm = NULL; 342 347 343 // Error checks 344 PS_IMAGE_CHECK_NULL(inImage, NULL); 345 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, NULL); 346 PS_IMAGE_CHECK_EMPTY(inImage, NULL); 347 PS_CHECK_SQUARE(inImage, 0); 348 #define DETERMINANT_EXIT { return NULL; } 349 // Error checks 350 PS_IMAGE_CHECK_NULL_GENERAL(inImage, DETERMINANT_EXIT); 351 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, DETERMINANT_EXIT); 352 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, DETERMINANT_EXIT); 353 PS_CHECK_SQUARE(inImage, DETERMINANT_EXIT); 348 354 349 355 // Initialize data … … 376 382 gsl_matrix *m3 = NULL; 377 383 378 // Error checks 379 PS_CHECK_POINTERS(inImage1, outImage, outImage); 380 PS_CHECK_POINTERS(inImage1, inImage2, outImage); 381 PS_IMAGE_CHECK_NULL(inImage1, outImage); 382 PS_CHECK_DIMEN_AND_TYPE(inImage1, PS_DIMEN_IMAGE, outImage); 383 PS_IMAGE_CHECK_EMPTY(inImage1, outImage); 384 PS_IMAGE_CHECK_NULL(inImage2, outImage); 385 PS_CHECK_DIMEN_AND_TYPE(inImage2, PS_DIMEN_IMAGE, outImage); 386 PS_IMAGE_CHECK_EMPTY(inImage2, outImage); 387 PS_CHECK_DIMEN_AND_TYPE(inImage1, PS_DIMEN_IMAGE, outImage); 384 #define MULTIPLY_CLEANUP { psFree(outImage); return NULL; } 385 386 // Error checks 387 PS_IMAGE_CHECK_NULL_GENERAL(inImage1, MULTIPLY_CLEANUP); 388 PS_IMAGE_CHECK_NULL_GENERAL(inImage2, MULTIPLY_CLEANUP); 389 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage1, MULTIPLY_CLEANUP); 390 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage2, MULTIPLY_CLEANUP); 391 PS_CHECK_DIMEN_AND_TYPE(inImage1, PS_DIMEN_IMAGE, MULTIPLY_CLEANUP); 392 PS_CHECK_DIMEN_AND_TYPE(inImage2, PS_DIMEN_IMAGE, MULTIPLY_CLEANUP); 393 PS_CHECK_POINTERS(inImage1, outImage, MULTIPLY_CLEANUP); 394 PS_CHECK_POINTERS(inImage1, inImage2, MULTIPLY_CLEANUP); 388 395 389 396 outImage = psImageRecycle(outImage, inImage2->numCols, inImage2->numRows, inImage2->type.type); 390 397 391 PS_CHECK_SQUARE(inImage1, outImage);392 PS_CHECK_SQUARE(inImage2, outImage);393 PS_CHECK_SQUARE(outImage, outImage);398 PS_CHECK_SQUARE(inImage1, MULTIPLY_CLEANUP); 399 PS_CHECK_SQUARE(inImage2, MULTIPLY_CLEANUP); 400 PS_CHECK_SQUARE(outImage, MULTIPLY_CLEANUP); 394 401 395 402 // Initialize data … … 428 435 psS32 numColsOut = 0; 429 436 430 431 // Error checks 432 PS_CHECK_POINTERS(inImage, outImage, outImage); 433 PS_IMAGE_CHECK_NULL(inImage, outImage); 434 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage); 435 PS_IMAGE_CHECK_EMPTY(inImage, outImage); 437 #define TRANSPOSE_CLEANUP { psFree(outImage); return NULL; } 438 // Error checks 439 PS_IMAGE_CHECK_NULL_GENERAL(inImage, TRANSPOSE_CLEANUP); 440 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, TRANSPOSE_CLEANUP); 441 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, TRANSPOSE_CLEANUP); 442 PS_CHECK_POINTERS(inImage, outImage, TRANSPOSE_CLEANUP); 443 436 444 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); 437 445 … … 472 480 gsl_matrix *in = NULL; 473 481 474 475 // Error checks 476 PS_ CHECK_POINTERS(inImage, outImage, outImage);477 PS_ IMAGE_CHECK_NULL(inImage, outImage);478 PS_ CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outImage);479 PS_ IMAGE_CHECK_EMPTY(inImage, outImage);482 #define EIGENVECTORS_CLEANUP { psFree(outImage); return NULL; } 483 // Error checks 484 PS_IMAGE_CHECK_NULL_GENERAL(inImage, EIGENVECTORS_CLEANUP); 485 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, EIGENVECTORS_CLEANUP); 486 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, EIGENVECTORS_CLEANUP); 487 PS_CHECK_POINTERS(inImage, outImage, EIGENVECTORS_CLEANUP); 480 488 481 489 outImage = psImageRecycle(outImage, inImage->numCols, inImage->numRows, inImage->type.type); … … 494 502 495 503 // Non-square matrices not allowed 496 PS_CHECK_SQUARE(inImage, outImage);497 PS_CHECK_SQUARE(outImage, outImage);504 PS_CHECK_SQUARE(inImage, EIGENVECTORS_CLEANUP); 505 PS_CHECK_SQUARE(outImage, EIGENVECTORS_CLEANUP); 498 506 499 507 // Calculate Eigenvalues and Eigenvectors...Eigenvalues not currently used … … 520 528 // Error checks 521 529 PS_IMAGE_CHECK_NULL_GENERAL(inImage, psMatrixToVector_EXIT); 522 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, outVector);530 PS_CHECK_DIMEN_AND_TYPE(inImage, PS_DIMEN_IMAGE, psMatrixToVector_EXIT); 523 531 PS_IMAGE_CHECK_EMPTY_GENERAL(inImage, psMatrixToVector_EXIT); 524 532 525 533 if (inImage->numRows == 1) { 526 534 // Create transposed row vector 527 psVectorRecycle(outVector, inImage->numCols, inImage->type.type);535 outVector = psVectorRecycle(outVector, inImage->numCols, inImage->type.type); 528 536 outVector->type.dimen = PS_DIMEN_TRANSV; 529 537 } else if (inImage->numCols == 1) { 530 538 // Create non-transposed column vector 531 psVectorRecycle(outVector, inImage->numRows, inImage->type.type);539 outVector = psVectorRecycle(outVector, inImage->numRows, inImage->type.type); 532 540 } else { 533 541 psError(PS_ERR_BAD_PARAMETER_SIZE, true, … … 537 545 } 538 546 539 PS_VECTOR_CHECK_NULL(outVector, outVector);540 541 547 // More checks 542 548 if (outVector->type.dimen == PS_DIMEN_VECTOR) { 543 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_VECTOR, outVector);549 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_VECTOR, psMatrixToVector_EXIT); 544 550 545 551 if (outVector->n == 0) { … … 557 563 558 564 } else if (outVector->type.dimen == PS_DIMEN_TRANSV) { 559 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_TRANSV, outVector);565 PS_CHECK_DIMEN_AND_TYPE(outVector, PS_DIMEN_TRANSV, psMatrixToVector_EXIT); 560 566 561 567 if (outVector->n == 0) { … … 582 588 psS32 size = 0; 583 589 584 // Error checks 585 PS_VECTOR_CHECK_NULL(inVector, outImage); 590 #define VECTORTOMATRIX_CLEANUP {psFree(outImage); return NULL; } 591 // Error checks 592 PS_VECTOR_CHECK_NULL_GENERAL(inVector, VECTORTOMATRIX_CLEANUP); 586 593 587 594 if (inVector->type.dimen == PS_DIMEN_VECTOR) { 588 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, outImage); 589 PS_VECTOR_CHECK_EMPTY(inVector, outImage); 595 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_VECTOR, VECTORTOMATRIX_CLEANUP); 596 PS_VECTOR_CHECK_EMPTY_GENERAL(inVector, VECTORTOMATRIX_CLEANUP); 597 590 598 outImage = psImageRecycle(outImage, 1, inVector->n, inVector->type.type); 599 591 600 // More checks for PS_DIMEN_VECTOR 592 601 if (outImage->numCols > 1) { … … 605 614 606 615 } else if (inVector->type.dimen == PS_DIMEN_TRANSV) { 607 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_TRANSV, outImage);608 PS_VECTOR_CHECK_EMPTY (inVector, outImage);616 PS_CHECK_DIMEN_AND_TYPE(inVector, PS_DIMEN_TRANSV, VECTORTOMATRIX_CLEANUP); 617 PS_VECTOR_CHECK_EMPTY_GENERAL(inVector, VECTORTOMATRIX_CLEANUP); 609 618 outImage = psImageRecycle(outImage, inVector->n, 1, inVector->type.type); 610 619 // More checks for PS_DIMEN_TRANSV … … 624 633 } 625 634 626 PS_IMAGE_CHECK_NULL (outImage, outImage);627 PS_CHECK_DIMEN_AND_TYPE(outImage, PS_DIMEN_IMAGE, outImage);635 PS_IMAGE_CHECK_NULL_GENERAL(outImage, VECTORTOMATRIX_CLEANUP); 636 PS_CHECK_DIMEN_AND_TYPE(outImage, PS_DIMEN_IMAGE, VECTORTOMATRIX_CLEANUP); 628 637 629 638 memcpy(outImage->data.V[0], inVector->data.V, size); -
trunk/psLib/test/dataManip/tst_psMatrix02.c
r3264 r3313 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-02- 17 19:26:25$14 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-02-24 00:19:51 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 32 32 33 33 // Test A - Input pointer same as output pointer 34 printNegativeTestHeader(stdout,"psMatrix", "Input pointer same as output pointer", 35 "Invalid operation: Pointer to inImage is same as outImage.", 0); 36 psMatrixTranspose(inImage, inImage); 34 printPositiveTestHeader(stdout,"psMatrix", "Input pointer same as output pointer"); 35 psMemIncrRefCounter(inImage); 36 if (psMatrixTranspose(inImage, inImage) != NULL) { 37 psError(PS_ERR_UNKNOWN, true, 38 "inImage = outImage didn't results in NULL return"); 39 return 1; 40 } 41 if (psMemGetRefCounter(inImage) != 1) { 42 psError(PS_ERR_UNKNOWN, true, 43 "the output image was not freed on an error."); 44 return 2; 45 } 37 46 printFooter(stdout, "psMatrix", "Input pointer same as output pointer", true); 38 47 39 48 // Test B - Null input psImage 40 printNegativeTestHeader(stdout,"psMatrix", "Null input psImage", 41 "Invalid operation: inImage or its data is NULL.", 0); 42 psMatrixTranspose(outImage, nullImage); 49 printPositiveTestHeader(stdout,"psMatrix", "Null input psImage"); 50 psMemIncrRefCounter(outImage); 51 if (psMatrixTranspose(outImage, nullImage) != NULL) { 52 psError(PS_ERR_UNKNOWN, true, 53 "inImage = outImage didn't results in NULL return"); 54 return 3; 55 } 56 if (psMemGetRefCounter(outImage) != 1) { 57 psError(PS_ERR_UNKNOWN, true, 58 "the output image was not freed on an error."); 59 return 4; 60 } 43 61 printFooter(stdout, "psMatrix", "Null input psImage", true); 44 62 45 63 // Test C - Incorrect type for input pointer 46 printNegativeTestHeader(stdout,"psMatrix", "Incorrect type for input pointer", 47 "|Invalid operation: inImage not PS_TYPE_F64.", 0); 48 psMatrixTranspose(outImage, badImage1); 64 printPositiveTestHeader(stdout,"psMatrix", "Incorrect type for input pointer"); 65 psMemIncrRefCounter(outImage); 66 if (psMatrixTranspose(outImage, badImage1) != NULL) { 67 psError(PS_ERR_UNKNOWN, true, 68 "inImage = outImage didn't results in NULL return"); 69 return 5; 70 } 71 if (psMemGetRefCounter(outImage) != 1) { 72 psError(PS_ERR_UNKNOWN, true, 73 "the output image was not freed on an error."); 74 return 6; 75 } 49 76 printFooter(stdout, "psMatrix", "Incorrect type for input pointer", true); 50 77 51 78 // Test D - Incorrect type for output pointer 52 printNegativeTestHeader(stdout,"psMatrix", "Incorrect type for output pointer", 53 "Invalid operation: outImage not PS_TYPE_F64.", 0); 54 psMatrixTranspose(badImage1, inImage); 79 printPositiveTestHeader(stdout,"psMatrix", "Incorrect type for output pointer"); 80 badImage1 = psMatrixTranspose(badImage1, inImage); 81 if (badImage1 == NULL) { 82 psError(PS_ERR_UNKNOWN, true, 83 "inImage = outImage didn't results in NULL return"); 84 return 7; 85 } 86 // check that the type was changed. 87 if (badImage1->type.type != PS_TYPE_F64) { 88 psError(PS_ERR_UNKNOWN, true, 89 "the output image was not freed on an error."); 90 return 8; 91 } 55 92 printFooter(stdout, "psMatrix", "Incorrect type for output pointer", true); 56 93 57 94 // Test E - Matrix not square for output pointer 58 printNegativeTestHeader(stdout,"psMatrix", "Matrix not square for output pointer", 59 "Invalid operation: outImage not square array.", 0); 95 printPositiveTestHeader(stdout,"psMatrix", "Matrix not square for output pointer"); 60 96 psMatrixTranspose(badImage2, inImage); 61 97 printFooter(stdout, "psMatrix", "Matrix not square for output pointer", true); -
trunk/psLib/test/dataManip/tst_psMatrix03.c
r3264 r3313 14 14 * @author Ross Harman, MHPCC 15 15 * 16 * @version $Revision: 1.1 4$ $Name: not supported by cvs2svn $17 * @date $Date: 2005-02- 17 19:26:25$16 * @version $Revision: 1.15 $ $Name: not supported by cvs2svn $ 17 * @date $Date: 2005-02-24 00:19:51 $ 18 18 * 19 19 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 148 148 printFooter(stdout, "psMatrix", "Calculate LU matrix", true); 149 149 150 151 150 // Test C - Determine solution to matrix equation 152 151 printPositiveTestHeader(stdout, "psMatrix", "Determine solution to matrix equation"); … … 208 207 psVector *vectorBadOut = (psVector*)psVectorAlloc(3, PS_TYPE_F64); 209 208 psVector *permBad = (psVector*)psVectorAlloc(3, PS_TYPE_F64); 209 imageTest = (psImage*)psImageAlloc(3, 3, PS_TYPE_F64); 210 210 psMatrixLUSolve(vectorBadOut, imageTest, vectorBad, permBad); 211 211 printFooter(stdout, "psMatrix", "Attempt to use null input vector argument", true); … … 215 215 printNegativeTestHeader(stdout,"psMatrix", "Attempt to use null LU image argument", 216 216 "Invalid operation: inImage or its data is NULL.", 0); 217 vectorBadOut = (psVector*)psVectorAlloc(3, PS_TYPE_F64); 217 218 psMatrixLUSolve(vectorBadOut, NULL, vectorBad, permBad); 218 219 printFooter(stdout, "psMatrix", "Attempt to use null LU image argument", true); 219 220 221 psFree(permBad); 222 psFree(imageTest); 223 224 if( psMemCheckLeaks(0, NULL, stdout, false) ) { 225 psError(PS_ERR_UNKNOWN,true,"Memory leaks detected"); 226 return 10; 227 } 228 nBad = psMemCheckCorruption(0); 229 if(nBad) { 230 printf("ERROR: Found %d bad memory blocks\n", nBad); 231 } 232 220 233 return 0; 221 234 } -
trunk/psLib/test/dataManip/tst_psMatrix07.c
r3291 r3313 16 16 * @author Ross Harman, MHPCC 17 17 * 18 * @version $Revision: 1.1 0$ $Name: not supported by cvs2svn $19 * @date $Date: 2005-02- 19 00:43:32$18 * @version $Revision: 1.11 $ $Name: not supported by cvs2svn $ 19 * @date $Date: 2005-02-24 00:19:51 $ 20 20 * 21 21 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 245 245 "Invalid operation: inVector or its data is NULL.", 0); 246 246 psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message"); 247 if(psVectorToMatrix(m2, NULL) != m2) {247 if(psVectorToMatrix(m2, NULL) != NULL) { 248 248 psError(PS_ERR_UNKNOWN,true,"Did not return output image"); 249 249 return 12; 250 250 } 251 251 psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message"); 252 if(psVectorToMatrix(m2_32, NULL) != m2_32) {252 if(psVectorToMatrix(m2_32, NULL) != NULL) { 253 253 psError(PS_ERR_UNKNOWN,true,"Did not return output image"); 254 254 return 13; … … 288 288 psFree(m1); 289 289 psFree(v1); 290 psFree(m2);291 290 psFree(v2); 292 291 psFree(v3); … … 295 294 psFree(m1_32); 296 295 psFree(v1_32); 297 psFree(m2_32);298 296 psFree(v2_32); 299 297 psFree(v3_32); -
trunk/psLib/test/dataManip/verified/tst_psMatrix02.stdout
r2678 r3313 2 2 * TestFile: tst_psMatrix02.c * 3 3 * TestPoint: psMatrix{Input pointer same as output pointer} * 4 * TestType: Negative * 5 * ExpectedErrorText: Invalid operation: Pointer to inImage is same as outImage. * 6 * ExpectedStatusValue: 0 * 4 * TestType: Positive * 7 5 \**********************************************************************************/ 8 6 … … 13 11 * TestFile: tst_psMatrix02.c * 14 12 * TestPoint: psMatrix{Null input psImage} * 15 * TestType: Negative * 16 * ExpectedErrorText: Invalid operation: inImage or its data is NULL. * 17 * ExpectedStatusValue: 0 * 13 * TestType: Positive * 18 14 \**********************************************************************************/ 19 15 … … 24 20 * TestFile: tst_psMatrix02.c * 25 21 * TestPoint: psMatrix{Incorrect type for input pointer} * 26 * TestType: Negative * 27 * ExpectedErrorText: |Invalid operation: inImage not PS_TYPE_F64. * 28 * ExpectedStatusValue: 0 * 22 * TestType: Positive * 29 23 \**********************************************************************************/ 30 24 … … 35 29 * TestFile: tst_psMatrix02.c * 36 30 * TestPoint: psMatrix{Incorrect type for output pointer} * 37 * TestType: Negative * 38 * ExpectedErrorText: Invalid operation: outImage not PS_TYPE_F64. * 39 * ExpectedStatusValue: 0 * 31 * TestType: Positive * 40 32 \**********************************************************************************/ 41 33 … … 46 38 * TestFile: tst_psMatrix02.c * 47 39 * TestPoint: psMatrix{Matrix not square for output pointer} * 48 * TestType: Negative * 49 * ExpectedErrorText: Invalid operation: outImage not square array. * 50 * ExpectedStatusValue: 0 * 40 * TestType: Positive * 51 41 \**********************************************************************************/ 52 42
Note:
See TracChangeset
for help on using the changeset viewer.
