diff options
Diffstat (limited to 'dis/Matrix/ver2/matrix.c')
-rwxr-xr-x | dis/Matrix/ver2/matrix.c | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/dis/Matrix/ver2/matrix.c b/dis/Matrix/ver2/matrix.c index 2b075fb..5162579 100755 --- a/dis/Matrix/ver2/matrix.c +++ b/dis/Matrix/ver2/matrix.c | |||
@@ -407,13 +407,6 @@ void biConjugateGradient(double *value, int *col_ind, int *row_start, | |||
407 | *actualError = error; | 407 | *actualError = error; |
408 | *actualIteration = iteration; | 408 | *actualIteration = iteration; |
409 | 409 | ||
410 | free(tmpVector1); | ||
411 | free(tmpVector2); | ||
412 | free(tmpVector3); | ||
413 | |||
414 | free(vectorR); | ||
415 | free(vectorP); | ||
416 | |||
417 | return; | 410 | return; |
418 | } | 411 | } |
419 | 412 | ||
@@ -525,27 +518,34 @@ int main(int argc, char **argv) { | |||
525 | 518 | ||
526 | randInit(seed); | 519 | randInit(seed); |
527 | 520 | ||
528 | START_LOOP | 521 | for_each_job { |
529 | initMatrix(matrixA, dim, numberNonzero); | 522 | initMatrix(matrixA, dim, numberNonzero); |
530 | 523 | ||
531 | create_CRS(matrixA, value, col_ind, row_start, dim, numberNonzero); | 524 | create_CRS(matrixA, value, col_ind, row_start, dim, numberNonzero); |
532 | 525 | ||
533 | initVector(vectorB, dim); | 526 | initVector(vectorB, dim); |
534 | zeroVector(vectorX, dim); | 527 | zeroVector(vectorX, dim); |
535 | 528 | ||
536 | beginTime = time(NULL); | 529 | beginTime = time(NULL); |
537 | 530 | ||
538 | actualError = 0; | 531 | actualError = 0; |
539 | actualIteration = 0; | 532 | actualIteration = 0; |
540 | 533 | ||
541 | biConjugateGradient(value, col_ind, row_start, vectorB, vectorX, | 534 | biConjugateGradient(value, col_ind, row_start, vectorB, vectorX, |
542 | errorTolerance, maxIterations, &actualError, | 535 | errorTolerance, maxIterations, &actualError, |
543 | &actualIteration, dim, vectorP, vectorR, nextVectorR, | 536 | &actualIteration, dim, vectorP, vectorR, nextVectorR, |
544 | tmpVector1, tmpVector2, tmpVector3); | 537 | tmpVector1, tmpVector2, tmpVector3); |
545 | 538 | ||
546 | STOP_LOOP | 539 | } |
547 | endTime = time(NULL); | 540 | endTime = time(NULL); |
548 | 541 | ||
542 | free(tmpVector1); | ||
543 | free(tmpVector2); | ||
544 | free(tmpVector3); | ||
545 | |||
546 | free(vectorR); | ||
547 | free(vectorP); | ||
548 | |||
549 | sum = 0; | 549 | sum = 0; |
550 | for (k = 1; k < dim; k++) { | 550 | for (k = 1; k < dim; k++) { |
551 | sum += sum + *(vectorX + k); | 551 | sum += sum + *(vectorX + k); |