Changeset 2fb8329 in tol
- Timestamp:
- Dec 9, 2009, 8:59:51 AM (17 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- dea29fb
- Parents:
- 9776d22
- Location:
- tol_pkg/MulVarFunAprox
- Files:
-
- 2 edited
-
DesignC2.tol (modified) (5 diffs)
-
ModelC2.tol (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol_pkg/MulVarFunAprox/DesignC2.tol
r9776d22 r2fb8329 4 4 // PURPOSE: Defines Class @DesignC2 5 5 ////////////////////////////////////////////////////////////////////////////// 6 6 7 7 8 ////////////////////////////////////////////////////////////////////////////// … … 91 92 92 93 ////////////////////////////////////////////////////////////////////////////// 93 VMatrix build.obs (VMatrix X, VMatrix X.h)94 VMatrix build.obs.eval(VMatrix X, VMatrix X.h, FunRn2R::@BaseC2.Eval eval) 94 95 ////////////////////////////////////////////////////////////////////////////// 95 96 { … … 109 110 WriteLn("TRACE "+_MID+"2"); 110 111 Set X.weight = get.X.weight(X.dif); 111 WriteLn("TRACE "+_MID+"2");112 FunRn2R::@BaseC2 b = get.base(0);113 112 WriteLn("TRACE "+_MID+"2"); 114 113 Matrix QX.triplet = Group("ConcatRows", For(1,_.X.maxNeighbour,Matrix(Real i) … … 120 119 VMatrix Xdif.i = SubRow(X.dif[i],sel.rows); 121 120 VMatrix X.j.i = SubRow(X.j,sel.rows); 122 Real b::upgrade.cache(Xdif.i,0);121 Real eval::upgrade.cache(Xdif.i); 123 122 Group("ConcatRows", For(1,_.K,Matrix(Real k) 124 123 { 125 VMatrix pk = b::function.v(k,Xdif.i);124 VMatrix pk = eval::evaluate.v(k,Xdif.i); 126 125 VMatrix qk = wi$*pk; 127 126 VMat2Mat(X.j.i | (X.hiK+k) | qk) … … 130 129 Pack(Convert(Triplet(QX.triplet, m, _.N),"Cholmod.R.Sparse")) 131 130 })}; 131 132 ////////////////////////////////////////////////////////////////////////////// 133 VMatrix build.obs(VMatrix X, VMatrix X.h) 134 ////////////////////////////////////////////////////////////////////////////// 135 { 136 FunRn2R::@BaseC2.Eval.Function eval = 137 FunRn2R::@BaseC2.Eval.Function::New(get.base(0)); 138 build.obs.eval(X,X.h,eval) 139 }; 140 ////////////////////////////////////////////////////////////////////////////// 141 VMatrix build.obs.partial.derivative.1(VMatrix X, VMatrix X.h, Real s) 142 ////////////////////////////////////////////////////////////////////////////// 143 { 144 FunRn2R::@BaseC2.Eval.Partial.Derivative.1 eval = 145 FunRn2R::@BaseC2.Eval.Partial.Derivative.1::New(get.base(0), s); 146 build.obs.eval(X,X.h,eval) 147 }; 148 ////////////////////////////////////////////////////////////////////////////// 149 VMatrix build.obs.partial.derivative.2(VMatrix X, VMatrix X.h, 150 Real s1, Real s2) 151 ////////////////////////////////////////////////////////////////////////////// 152 { 153 FunRn2R::@BaseC2.Eval.Partial.Derivative.2 eval = 154 FunRn2R::@BaseC2.Eval.Partial.Derivative.2::New(get.base(0), s1, s2); 155 build.obs.eval(X,X.h,eval) 156 }; 157 ////////////////////////////////////////////////////////////////////////////// 158 VMatrix build.obs.partial.integrate.1(VMatrix X, VMatrix X.h, Real s) 159 ////////////////////////////////////////////////////////////////////////////// 160 { 161 FunRn2R::@BaseC2.Eval.Partial.Integrate.1 eval = 162 FunRn2R::@BaseC2.Eval.Partial.Integrate.1::New(get.base(0), s); 163 build.obs.eval(X,X.h,eval) 164 }; 132 165 ////////////////////////////////////////////////////////////////////////////// 133 166 VMatrix build.border.prior(Real void) -
tol_pkg/MulVarFunAprox/ModelC2.tol
r9776d22 r2fb8329 41 41 42 42 ////////////////////////////////////////////////////////////////////////////// 43 Static @ModelC2 New.Monomial.Spheric.Disconnected( 44 VMatrix Fx, 45 VMatrix X, 46 Real max.deg, 47 Real min.contrast.surface, 48 Real radius.margin, 49 Real radius, 50 Real do.build.border) 51 ////////////////////////////////////////////////////////////////////////////// 52 { 53 Text _MID = "[@ModelC2::New.Monomial.Spheric.Disconnected] "; 54 MulVarFunAprox::@DesignC2 design = { 55 MulVarFunAprox::@DesignC2.Monomial.Spheric.Disconnected::New( 56 VMatrix X, 57 Real radius.margin, 58 Real radius, 59 Real do.build.border)}; 60 Real design::max.deg := max.deg; 61 Real design::min.contrast.surface := min.contrast.surface; 62 Real t0 = Copy(Time); 63 WriteLn("TRACE"+_MID+"Building model design for "<<design::_.J+" points "<< 64 "of dimension "<<design::_.n+" ..."); 65 Real deg = design::build.model.design(0); 66 Real t.building = Copy(Time)-t0; 67 WriteLn("TRACE"+_MID+"Built model design in "<<t.building+" seconds"); 68 Real t0 := Copy(Time); 69 WriteLn("TRACE"+_MID+"Building decomposition for design matrix ("<< 70 design::_.M+"x"<<design::_.N+") ..."); 71 Real design::build.decomposition(0); 72 Real t.decomposition = Copy(Time)-t0; 73 WriteLn("TRACE"+_MID+"Input decomposed in "<<t.decomposition+" seconds"); 74 Real t0 := Copy(Time); 75 WriteLn("TRACE"+_MID+"Running regression model for design matrix "<<design::_.Q); 76 MulVarFunAprox::@ModelC2 model = MulVarFunAprox::@ModelC2::New( 77 design, 78 Fx); 79 Real t.estimating = Copy(Time)-t0; 80 WriteLn("TRACE"+_MID+"Estimated model in "<<t.estimating+" seconds"); 81 model 82 }; 83 84 ////////////////////////////////////////////////////////////////////////////// 43 85 Real estimate(Real void) 44 86 ////////////////////////////////////////////////////////////////////////////// … … 57 99 58 100 ////////////////////////////////////////////////////////////////////////////// 59 VMatrix evaluate (VMatrix X)101 VMatrix evaluate.eval(VMatrix X, FunRn2R::@BaseC2.Eval eval) 60 102 ////////////////////////////////////////////////////////////////////////////// 61 103 { … … 66 108 Real m.1 = VRows(X.1); 67 109 VMatrix X.1.h = _.design::closest.reference.index(X.1); 68 VMatrix QX.1 = _.design::build.obs (X.1, X.1.h);110 VMatrix QX.1 = _.design::build.obs.eval(X.1, X.1.h, eval); 69 111 VMatrix F.1 = QX.1*_.alpha; 70 112 Matrix triplet.1 = SetCol(X.select)|Rand(m.1,1,1,1)|VMat2Mat(F.1); 71 113 Pack(Convert(Triplet(triplet.1,m,1),"Cholmod.R.Sparse")) 114 }; 115 116 ////////////////////////////////////////////////////////////////////////////// 117 VMatrix evaluate(VMatrix X) 118 ////////////////////////////////////////////////////////////////////////////// 119 { 120 FunRn2R::@BaseC2.Eval.Function eval = 121 FunRn2R::@BaseC2.Eval.Function::New(_.design::get.base(0)); 122 evaluate.eval(X,eval) 123 }; 124 ////////////////////////////////////////////////////////////////////////////// 125 VMatrix evaluate.partial.derivative.1(VMatrix X, Real s) 126 ////////////////////////////////////////////////////////////////////////////// 127 { 128 FunRn2R::@BaseC2.Eval.Partial.Derivative.1 eval = 129 FunRn2R::@BaseC2.Eval.Partial.Derivative.1::New(_.design::get.base(0), s); 130 evaluate.eval(X,eval) 131 }; 132 ////////////////////////////////////////////////////////////////////////////// 133 VMatrix evaluate.partial.derivative.2(VMatrix X, 134 Real s1, Real s2) 135 ////////////////////////////////////////////////////////////////////////////// 136 { 137 FunRn2R::@BaseC2.Eval.Partial.Derivative.2 eval = 138 FunRn2R::@BaseC2.Eval.Partial.Derivative.2::New(_.design::get.base(0), s1, s2); 139 evaluate.eval(X,eval) 140 }; 141 ////////////////////////////////////////////////////////////////////////////// 142 VMatrix evaluate.partial.integrate.1(VMatrix X, Real s) 143 ////////////////////////////////////////////////////////////////////////////// 144 { 145 FunRn2R::@BaseC2.Eval.Partial.Integrate.1 eval = 146 FunRn2R::@BaseC2.Eval.Partial.Integrate.1::New(_.design::get.base(0), s); 147 evaluate.eval(X,eval) 72 148 } 73 74 149 }; 75 150
Note: See TracChangeset
for help on using the changeset viewer.
