Changeset af58f78 in tol
- Timestamp:
- Mar 19, 2009, 9:03:11 AM (18 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- 845146f
- Parents:
- bc58504
- File:
-
- 1 edited
-
tol/btol/vmatrix_type/vmat_convert.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/btol/vmatrix_type/vmat_convert.cpp
rbc58504 raf58f78 613 613 register int n = Minimum(nrow,ncol); 614 614 register int nnz = 0; 615 register int i, j, k, h, d , jMin, jMax;615 register int i, j, k, h, d; 616 616 register double c; 617 617 register BPolyn<BDat> pol = pol_; … … 619 619 register int s=pol.Size(); 620 620 register const BMonome<BDat>* mon = pol.Buffer(); 621 621 622 for(k=0; k<s; k++) 622 623 { 623 624 d = mon->Degree(); 624 jMin = Maximum(0,-d);625 jMax = Minimum(nrow-d-1,ncol-1);626 if(jMax<jMin)627 {628 s=k;629 break;625 if(d>=0) 626 { 627 for(i=d; (i<nrow)&&(i-d<ncol); i++) 628 { 629 nnz++; 630 } 630 631 } 631 632 else 632 633 { 633 nnz += Maximum(0,jMax-jMin+1); 634 mon++; 635 } 634 for(j=-d; (j<ncol)&&(j+d<nrow); j++) 635 { 636 nnz++; 637 } 638 } 639 mon++; 636 640 } 637 641 mon = pol.Buffer(); … … 646 650 d = mon->Degree(); 647 651 c = mon->Coef().Value(); 648 jMin = Maximum(0,-d); 649 jMax = Minimum(nrow-d-1,ncol-1); 650 assert(jMax>=jMin); 651 for(j=jMin; j<=jMax; j++, h++) 652 { 653 i=j+d; 654 assert((i>=0)&&(i<nrow)); 655 assert((j>=0)&&(j<ncol)); 656 assert(h<nnz); 657 r_[h] = i; 658 c_[h] = j; 659 x_[h] = c; 652 if(d>=0) 653 { 654 for(i=d; (i<nrow)&&(i-d<ncol); i++, h++) 655 { 656 r_[h] = i; 657 c_[h] = i-d; 658 x_[h] = c; 659 } 660 } 661 else 662 { 663 for(j=-d; (j<ncol)&&(j+d<nrow); j++, h++) 664 { 665 r_[h] = j+d; 666 c_[h] = j; 667 x_[h] = c; 668 } 660 669 } 661 670 mon++; 662 671 } 672 663 673 s_.chlmRsparse_ = cholmod_triplet_to_sparse(triplet, nnz, common_); 664 674 cholmod_free_triplet(&triplet,common_);
Note: See TracChangeset
for help on using the changeset viewer.
