summaryrefslogtreecommitdiffstats
path: root/dis/Matrix/ver2/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'dis/Matrix/ver2/matrix.c')
-rwxr-xr-xdis/Matrix/ver2/matrix.c40
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);