Changeset 151dc42 in tol for tol_tests


Ignore:
Timestamp:
Feb 3, 2009, 9:21:19 AM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
f84924c
Parents:
1918f9c
Message:

New argument forceNaturalOrder in CholeskiFactor
CHOLMOD API for choleski solve treat P and Pt as products instaed of linear sistem solvers

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@566 be4846ae-f051-483a-831f-b64e7d08527f

Location:
tol_tests/tol/LinearAlgebra/vmatrix
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • tol_tests/tol/LinearAlgebra/vmatrix/test_0003/test.tol

    r1918f9c r151dc42  
    2929  Matrix B_ = VMat2Mat(B);
    3030 
    31   VMatrix PB = CholeskiSolve(L.factor,B,"P");
     31  VMatrix PB = CholeskiSolve(L.factor,B,"Pt");
    3232  Matrix PB_ = VMat2Mat(PB);
    3333
    34   VMatrix PtPB = CholeskiSolve(L.factor,PB,"Pt");
     34  VMatrix PtPB = CholeskiSolve(L.factor,PB,"P");
    3535  Matrix PtPB_ = VMat2Mat(PtPB);
    3636 
    … …  
    3939  VMatrix L       = Convert(L.factor,"Cholmod.R.Sparse");
    4040  Matrix  L_      = VMat2Mat(L);
    41   VMatrix PtL     = CholeskiSolve(L.factor,L,"Pt");
     41  VMatrix PtL     = CholeskiSolve(L.factor,L,"P");
    4242  Matrix  PtL_    = VMat2Mat(PtL);
    4343  VMatrix PtLLtP  = MMtSqr(PtL);
  • tol_tests/tol/LinearAlgebra/vmatrix/test_0004/test.tol

    r1918f9c r151dc42  
    6363
    6464
    65   Real   m      = IntRand(150, 150);
     65  Real   m      = IntRand(10, 10);
    6666 
    6767  Real   p1     = IntRand(1,3);
    … …  
    7070  Polyn  ma1    = RandStationary(q1);
    7171 
    72   Real   p7     = 1*IntRand(1,1);
     72  Real   p7     = 0*IntRand(1,1);
    7373  Polyn  ar7    = RandStationary(p7,7);
    7474  Real   q7     = 0*IntRand(1,3);
    … …  
    122122  WriteLn("quality.L_theta_m_ = "<<quality.L_theta_m_);
    123123
    124  
    125124//Sparse Choleski of large length m
    126125  VMatrix cov_arma_m = Pol2VMat(ARMAGamma(ar,ma,m), m, m);
    … …  
    128127  WriteLn("quality.cov_arma_m = "<<quality.cov_arma_m);
    129128
    130   VMatrix L_arma_m.1   = CholeskiFactor(cov_arma_m,"X");
     129  VMatrix L_arma_m.1   = CholeskiFactor(cov_arma_m,"X",False);
    131130  Real quality.L_arma_m.1 = 1-MatMax(Abs(VMat2Mat(L_arma_m.1)-L_arma_m_));
    132131  WriteLn("quality.L_arma_m.1 = "<<quality.L_arma_m.1);
    133132
    134   VMatrix Li_arma_m.1  = CholeskiSolve(L_arma_m.1,Eye(m),"L");
     133  VMatrix Li_arma_m.1  = CholeskiSolve(L_arma_m.1,Eye(m),"PtL");
    135134  VMatrix Lis_arma_m.1 = Convert(Li_arma_m.1,"Cholmod.R.Sparse");
    136135  Real quality.Li_arma_m.1 = 1-MatMax(Abs(VMat2Mat(Li_arma_m.1)-Li_arma_m_));
    … …  
    141140  WriteLn("quality.cov_ar_m = "<<quality.cov_ar_m);
    142141
    143   VMatrix L_ar_m   = CholeskiFactor(cov_ar_m,"X");
     142  VMatrix L_ar_m   = CholeskiFactor(cov_ar_m,"X",False);
    144143  Real quality.L_ar_m = 1-MatMax(Abs(VMat2Mat(L_ar_m)-L_ar_m_));
    145144  WriteLn("quality.L_ar_m = "<<quality.L_ar_m);
    146145
    147   VMatrix Li_ar_m.1  = CholeskiSolve(L_ar_m,Eye(m),"L");
     146  VMatrix Li_ar_m.1  = CholeskiSolve(L_ar_m,Eye(m),"PtL");
    148147  Matrix VMat2Mat(Li_ar_m.1);
    149148  Real quality.Li_ar_m.1 = 1-MatMax(Abs(VMat2Mat(Li_ar_m.1)-Li_ar_m_));
    … …  
    156155  WriteLn("quality.cov_theta_m.1 = "<<quality.cov_theta_m.1);
    157156
    158   VMatrix L_theta_m.1 = CholeskiFactor(cov_theta_m.1,"X");
     157  VMatrix L_theta_m.1 = CholeskiFactor(cov_theta_m.1,"X",False);
    159158
    160159//Sparse Choleski of short length n
    … …  
    167166  WriteLn("quality.cov_ar_n = "<<quality.cov_ar_n);
    168167
    169   VMatrix L_ar_n   = CholeskiFactor(cov_ar_n,"X");
     168  VMatrix L_ar_n   = CholeskiFactor(cov_ar_n,"X",False);
    170169  Real quality.L_ar_n = 1-MatMax(Abs(VMat2Mat(L_ar_n)-L_ar_n_));
    171170  WriteLn("quality.L_ar_n = "<<quality.L_ar_n);
    172171
    173   VMatrix Li_ar_n  = CholeskiSolve(L_ar_n,Eye(n),"L");
     172  VMatrix Li_ar_n  = CholeskiSolve(L_ar_n,Eye(n),"PtL");
    174173  Real quality.Li_ar_n = 1-MatMax(Abs(VMat2Mat(Li_ar_n)-Li_ar_n_));
    175174  WriteLn("quality.Li_ar_n = "<<quality.Li_ar_n);
    … …  
    186185  WriteLn("quality.Li_ar_m = "<<quality.Li_ar_m);
    187186
    188   VMatrix L_theta_m = CholeskiFactor(cov_theta_m,"X");
     187  VMatrix L_theta_m = CholeskiFactor(cov_theta_m,"X",True);
    189188  VMatrix Ls_theta_m = Convert(L_theta_m,"Cholmod.R.Sparse");
    190189  Matrix VMat2Mat(Ls_theta_m);
    … …  
    192191  WriteLn("quality.Ls_theta_m = "<<quality.Ls_theta_m);
    193192
    194   VMatrix Li_arma_m  = CholeskiSolve(L_theta_m,Li_ar_m,"L");
     193  VMatrix Li_arma_m  = CholeskiSolve(L_theta_m,Li_ar_m,"PtL");
    195194  Matrix VMat2Mat(Li_arma_m);
    196195  Real quality.L_arma_m = 1-VMatMax(Abs(Li_arma_m-Lis_arma_m.1));
  • tol_tests/tol/LinearAlgebra/vmatrix/test_0005/performance.tol

    r1918f9c r151dc42  
    9494  {
    9595    Set For(2,repeatSolv,Real(Real k)
    96     { VMatrix CholeskiSolve(L,Xty,"LLt"); 1 });
    97     Drop(CholeskiSolve(L,Xty,"LLt"),1.E-15)
     96    { VMatrix CholeskiSolve(L,Xty,"PtLLtP"); 1 });
     97    Drop(CholeskiSolve(L,Xty,"PtLLtP"),1.E-15)
    9898  };
    9999  Real tSolv = (Copy(Time)-t0)/repeatSolv;
  • tol_tests/tol/LinearAlgebra/vmatrix/test_0005/test.tol

    r1918f9c r151dc42  
    6363
    6464  WriteLn("TRACE 10 "+Time);
    65   VMatrix b3.1 = CholeskiSolve(L2,Xty,  "P");
     65  VMatrix b3.1 = CholeskiSolve(L2,Xty,  "Pt");
    6666  VMatrix b3.2 = CholeskiSolve(L2,b3.1, "L");
    6767  VMatrix b3.3 = CholeskiSolve(L2,b3.2, "Lt");
    68   VMatrix b3   = CholeskiSolve(L2,b3.3, "Pt");
     68  VMatrix b3   = CholeskiSolve(L2,b3.3, "P");
    6969  Matrix _b3   = VMat2Mat(b3);
    7070  Real b3.quality   = 1-MatMax(Abs(_b-_b3));
    … …  
    7878
    7979  WriteLn("TRACE 12 "+Time);
    80   VMatrix PXtX  = CholeskiSolve(L2, XtX, "P");
     80  VMatrix PXtX  = CholeskiSolve(L2, XtX,  "Pt");
    8181  VMatrix L_2t  = CholeskiSolve(L2, PXtX, "L");
    8282  VMatrix L_2   = Tra(L_2t);
  • tol_tests/tol/LinearAlgebra/vmatrix/test_0007/test.tol

    r1918f9c r151dc42  
    4040Matrix  COV_ = VMat2Mat(COV);
    4141WriteLn("TRACE 3");
    42 VMatrix factor  = CholeskiFactor(COV,"X");
     42VMatrix factor  = CholeskiFactor(COV,"X",False);
    4343
    4444VMatrix B = Mat2VMat(DifEq(1/(1-B),Rand(m,1,1,1),Rand(0,0,0,0),Col(0)));
    … …  
    6565Matrix VMat2Mat(LLiB);
    6666
    67 VMatrix PtL = CholeskiSolve(factor, Ls, "Pt");
     67VMatrix PtL = CholeskiSolve(factor, Ls, "P");
    6868VMatrix PtLLtP.1 = MMtSqr(PtL);
    6969Matrix VMat2Mat(PtLLtP.1);
    … …  
    7575
    7676
    77 
    7877Matrix  L_ = Choleski(COV_);
    7978Matrix  Li = LTInverse(L_);
    … …  
    8281WriteLn("TRACE 6 quality.3="<<quality.3);
    8382
    84 VMatrix LLtP = CholeskiSolve(factor, COV, "Pt");
    85 Matrix VMat2Mat(LLtP);
    86 VMatrix LtP  = CholeskiSolve(factor, LLtP, "L");
    87 Matrix VMat2Mat(LtP);
    88 VMatrix LtP_  = (CholeskiSolve(factor, COV, "PtL")+m)-m;
    89 Matrix VMat2Mat(LtP_);
     83
     84VMatrix LtP      = CholeskiSolve(factor, COV, "PtL");
    9085VMatrix PtLLtP.2 = MtMSqr(LtP);
    9186Matrix VMat2Mat(PtLLtP.2);
    … …  
    9388WriteLn("TRACE 7 quality.4="<<quality.4);
    9489
    95 //VMatrix E  = CholeskiSolve(factor,Z,"PtL");
    96 VMatrix E  = CholeskiSolve(factor,CholeskiSolve(factor,Z,"Pt"),"L");
     90VMatrix E  = CholeskiSolve(factor,Z,"PtL");
    9791Matrix VMat2Mat(Z-PtL*E);
    9892Real quality.5 = 1-VMatMax(Abs(Z-PtL*E));
Note: See TracChangeset for help on using the changeset viewer.