Changeset d232f66 in tol
- Timestamp:
- Oct 26, 2009, 3:41:15 PM (17 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- d00af3a
- Parents:
- fbc0756
- File:
-
- 1 edited
-
tol/btol/vmatrix_type/vmat_arith.cpp (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/btol/vmatrix_type/vmat_arith.cpp
rfbc0756 rd232f66 683 683 else 684 684 { 685 assert(n0+ 1>=0);685 assert(n0+i>=0); 686 686 xk = X0[n0+i]; 687 687 } … … 698 698 { 699 699 double xk = 0; 700 i+=P[k].Degree(); 701 if(i<n) 700 BMonome<BDat>& Pk = P[k]; 701 int d = Pk.Degree(); 702 double c = Pk.Coef().Value(); 703 int id = i+d; 704 if(id<n) 702 705 { 703 assert(i>=0); 704 xk = X[i]; 706 assert(id>=0); 707 xk = X[id]; 708 /* Std(BText(" GetForwardValue ")+ 709 "\tn0= "+n0+ 710 "\tn= "+n+ 711 "\ti= "+i+ 712 "\tk= "+k+ 713 "\td= "+d+ 714 "\tc= "+c+ 715 "\tid= "+id+ 716 "\txk= X["+id+"]="+xk+ 717 "\tc*xk= "+(c * xk)+ 718 "\n"); */ 705 719 } 706 720 else 707 721 { 708 assert(n+i<n0); 709 xk = X0[n+i]; 710 } 711 return(P[k].Coef().Value() * xk); 722 assert(id-n<n0); 723 xk = X0[id-n]; 724 /* Std(BText(" GetForwardValue ")+ 725 "\tn0= "+n0+ 726 "\tn= "+n+ 727 "\ti= "+i+ 728 "\tk= "+k+ 729 "\td= "+d+ 730 "\tc= "+c+ 731 "\tid= "+id+ 732 "\txk= X0["+(id-n)+"]="+xk+ 733 "\tc*xk= "+(c * xk)+ 734 "\n"); */ 735 } 736 return(c * xk); 712 737 } 713 738 … … 853 878 BVMatColMajIter y0_(Y0, fName); 854 879 BArray<double> _x0, _x, _y0; 855 double *x0 , *x, *y0, *y;856 double *yij= ((double*)Y->s_.blasRdense_->x) ;880 double *x0=NULL, *x=NULL, *y0=NULL, *y=NULL; 881 double *yij= ((double*)Y->s_.blasRdense_->x)+(r*c-1); 857 882 int nnz = 0; 858 for(j= 0; j<c; j++)859 { 860 x0_.GetCol(j,_x0); x0 = _x0.GetBuffer();861 x_ .GetCol(j,_x ); x = _x .GetBuffer();862 y0_.GetCol(j,_y0); y0 = _y0.GetBuffer();863 y = yij ;883 for(j=c-1; j>=0; j--) 884 { 885 if(p) { x0_.GetCol(j,_x0); x0 = _x0.GetBuffer(); } 886 x_ .GetCol(j,_x ); x = _x .GetBuffer(); 887 if(q) { y0_.GetCol(j,_y0); y0 = _y0.GetBuffer(); } 888 y = yij-r+1; 864 889 for(i=r-1; i>=0; i--) 865 890 { 866 891 *yij = 0.0; 892 //Std(BText("BackDifEq AR\n")); 867 893 for(k=0; k<num.Size(); k++) 868 894 { 869 895 *yij += GetForwardValue(num,x0,p,x,r,i,k); 870 896 } 897 //Std(BText("BackDifEq MA\n")); 871 898 for(k=1; k<den.Size(); k++) 872 899 { … … 875 902 if(fabs(*yij)<chop) { *yij=0.0; } 876 903 if(fabs(*yij)>0.0) { nnz++; } 877 yij++; 904 //Std(BText("y[")+i+"]="+y[i]+"\n"); 905 yij--; 878 906 } 879 907 }
Note: See TracChangeset
for help on using the changeset viewer.
