Mercurial > hg > octave-nkf
comparison liboctave/numeric/eigs-base.cc @ 20440:e914b5399c67
Use in-place operators in C++ code where possible.
* libgui/src/dialog.cc, libgui/src/m-editor/file-editor-tab.cc,
libgui/src/main-window.cc, libinterp/corefcn/bsxfun.cc,
libinterp/corefcn/filter.cc, libinterp/corefcn/mgorth.cc,
libinterp/corefcn/oct-stream.cc, libinterp/corefcn/pr-output.cc,
liboctave/array/Array-util.cc, liboctave/array/dim-vector.h,
liboctave/numeric/CollocWt.cc, liboctave/numeric/eigs-base.cc,
liboctave/numeric/lo-specfun.cc:
Use in-place operators in C++ code where possible.
author | Rik <rik@octave.org> |
---|---|
date | Mon, 25 May 2015 22:02:15 -0700 |
parents | 17d647821d61 |
children | a9574e3c6e9e |
comparison
equal
deleted
inserted
replaced
20439:5dfaaaae784f | 20440:e914b5399c67 |
---|---|
455 static_cast<octave_idx_type>(permB(i)); | 455 static_cast<octave_idx_type>(permB(i)); |
456 tmp.xdata (i) = 1; | 456 tmp.xdata (i) = 1; |
457 } | 457 } |
458 tmp.xcidx (n) = n; | 458 tmp.xcidx (n) = n; |
459 | 459 |
460 AminusSigmaB = AminusSigmaB - sigma * tmp * | 460 AminusSigmaB -= sigma * tmp * |
461 b.transpose () * b * tmp.transpose (); | 461 b.transpose () * b * tmp.transpose (); |
462 } | 462 } |
463 else | 463 else |
464 AminusSigmaB = AminusSigmaB - sigma * | 464 AminusSigmaB -= sigma * b.transpose () * b; |
465 b.transpose () * b; | |
466 } | 465 } |
467 else | 466 else |
468 AminusSigmaB = AminusSigmaB - sigma * b; | 467 AminusSigmaB -= sigma * b; |
469 } | 468 } |
470 else | 469 else |
471 { | 470 { |
472 SparseMatrix sigmat (n, n, n); | 471 SparseMatrix sigmat (n, n, n); |
473 | 472 |
478 sigmat.xdata (i) = sigma; | 477 sigmat.xdata (i) = sigma; |
479 sigmat.xridx (i) = i; | 478 sigmat.xridx (i) = i; |
480 sigmat.xcidx (i+1) = i + 1; | 479 sigmat.xcidx (i+1) = i + 1; |
481 } | 480 } |
482 | 481 |
483 AminusSigmaB = AminusSigmaB - sigmat; | 482 AminusSigmaB -= sigmat; |
484 } | 483 } |
485 | 484 |
486 SparseLU fact (AminusSigmaB); | 485 SparseLU fact (AminusSigmaB); |
487 | 486 |
488 L = fact.L (); | 487 L = fact.L (); |
550 i < b.rows (); i++) | 549 i < b.rows (); i++) |
551 *p++ -= tmp.xelem (static_cast<octave_idx_type>(pB[i]), | 550 *p++ -= tmp.xelem (static_cast<octave_idx_type>(pB[i]), |
552 static_cast<octave_idx_type>(pB[j])); | 551 static_cast<octave_idx_type>(pB[j])); |
553 } | 552 } |
554 else | 553 else |
555 AminusSigmaB = AminusSigmaB - tmp; | 554 AminusSigmaB -= tmp; |
556 } | 555 } |
557 else | 556 else |
558 AminusSigmaB = AminusSigmaB - sigma * b; | 557 AminusSigmaB -= sigma * b; |
559 } | 558 } |
560 else | 559 else |
561 { | 560 { |
562 double *p = AminusSigmaB.fortran_vec (); | 561 double *p = AminusSigmaB.fortran_vec (); |
563 | 562 |
620 static_cast<octave_idx_type>(permB(i)); | 619 static_cast<octave_idx_type>(permB(i)); |
621 tmp.xdata (i) = 1; | 620 tmp.xdata (i) = 1; |
622 } | 621 } |
623 tmp.xcidx (n) = n; | 622 tmp.xcidx (n) = n; |
624 | 623 |
625 AminusSigmaB = AminusSigmaB - tmp * b.hermitian () * b * | 624 AminusSigmaB -= tmp * b.hermitian () * b * |
626 tmp.transpose () * sigma; | 625 tmp.transpose () * sigma; |
627 } | 626 } |
628 else | 627 else |
629 AminusSigmaB = AminusSigmaB - sigma * b.hermitian () * b; | 628 AminusSigmaB -= sigma * b.hermitian () * b; |
630 } | 629 } |
631 else | 630 else |
632 AminusSigmaB = AminusSigmaB - sigma * b; | 631 AminusSigmaB -= sigma * b; |
633 } | 632 } |
634 else | 633 else |
635 { | 634 { |
636 SparseComplexMatrix sigmat (n, n, n); | 635 SparseComplexMatrix sigmat (n, n, n); |
637 | 636 |
642 sigmat.xdata (i) = sigma; | 641 sigmat.xdata (i) = sigma; |
643 sigmat.xridx (i) = i; | 642 sigmat.xridx (i) = i; |
644 sigmat.xcidx (i+1) = i + 1; | 643 sigmat.xcidx (i+1) = i + 1; |
645 } | 644 } |
646 | 645 |
647 AminusSigmaB = AminusSigmaB - sigmat; | 646 AminusSigmaB -= sigmat; |
648 } | 647 } |
649 | 648 |
650 SparseComplexLU fact (AminusSigmaB); | 649 SparseComplexLU fact (AminusSigmaB); |
651 | 650 |
652 L = fact.L (); | 651 L = fact.L (); |
714 i < b.rows (); i++) | 713 i < b.rows (); i++) |
715 *p++ -= tmp.xelem (static_cast<octave_idx_type>(pB[i]), | 714 *p++ -= tmp.xelem (static_cast<octave_idx_type>(pB[i]), |
716 static_cast<octave_idx_type>(pB[j])); | 715 static_cast<octave_idx_type>(pB[j])); |
717 } | 716 } |
718 else | 717 else |
719 AminusSigmaB = AminusSigmaB - tmp; | 718 AminusSigmaB -= tmp; |
720 } | 719 } |
721 else | 720 else |
722 AminusSigmaB = AminusSigmaB - sigma * b; | 721 AminusSigmaB -= sigma * b; |
723 } | 722 } |
724 else | 723 else |
725 { | 724 { |
726 Complex *p = AminusSigmaB.fortran_vec (); | 725 Complex *p = AminusSigmaB.fortran_vec (); |
727 | 726 |