Changeset e1969fb in tol
- Timestamp:
- Oct 9, 2014, 3:29:19 PM (12 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- e019cec
- Parents:
- b6035f3
- Files:
-
- 8 edited
-
tol/bmath/bfunct/fib.cpp (modified) (4 diffs)
-
tol/bmath/bfunct/tol_bfibonac.h (modified) (1 diff)
-
tol/btol/matrix_type/matgra.cpp (modified) (1 diff)
-
tol/btol/polmat_type/polmatgra.cpp (modified) (2 diffs)
-
tol/btol/real_type/datgrav.cpp (modified) (5 diffs)
-
tol/init.cpp (modified) (1 diff)
-
tol/lang/language.cpp (modified) (1 diff)
-
tol_tests/tol/LinearAlgebra/PolMatrix/test_0002/check.tol (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/bmath/bfunct/fib.cpp
rb6035f3 re1969fb 116 116 BDat BFibonacci::Minimum( BRRFunction* function, 117 117 BDat& minimumValue, 118 BDat ini, BDat fin ,119 BDat tol )118 BDat ini, BDat fin, 119 BDat tol, int maxEval) 120 120 121 121 /*! Returns the minimum of fibonacci of function in the … … 141 141 Generate(fib, length); 142 142 BInt N = fib.Size()-1; 143 if((maxEval>0)&&(maxEval<N+1)) { N = maxEval-1; } 143 144 incerInf = ini; 144 145 incerSup = fin; … … 247 248 BDat value, 248 249 BDat ini, BDat fin , 249 BDat tol )250 BDat tol, int maxEval) 250 251 251 252 /*! Returns the minimum of fibonacci of function in the … … 274 275 Generate(fib, (fin-ini)/(tol/2)); 275 276 BInt n, N = fib.Size()-1; 277 if((maxEval>0)&&(maxEval<N+1)) { N = maxEval-1; } 276 278 //Std(BText("Fibonacci(")+N+")"); 277 279 incerInf = ini; -
tol/bmath/bfunct/tol_bfibonac.h
rb6035f3 re1969fb 53 53 BDat& minimumValue, 54 54 BDat ini, BDat fin, 55 BDat tolerance=1 );55 BDat tolerance=1, int maxEval=-1); 56 56 57 57 static BDat Solve( BRRFunction* funcion, 58 58 BDat value, 59 59 BDat ini, BDat fin, 60 BDat tolerance=1 );60 BDat tolerance=1, int maxEval=-1); 61 61 62 62 static BInt Number(BInt n); -
tol/btol/matrix_type/matgra.cpp
rb6035f3 re1969fb 4635 4635 contens_(i,0)=i+1; 4636 4636 contens_(i,1)=c(i); 4637 contens_(i,2)=sigma; 4638 } 4639 } 4640 4641 //-------------------------------------------------------------------- 4642 DeclareContensClass(BMat, BMatTemporary, BMatMatPartAutoCor); 4643 DefExtOpr(1, BMatMatPartAutoCor, "MatPartAutoCor", 2, 2, "Matrix Real", 4644 "(Matrix M, Real n)", 4645 I2("Returns the sample partial autocorrelations vector of dimension n of a vector.", 4646 "Devuelve el vector de autocorrelaciones parciales muestrales de dimension n de " 4647 "un vector."), 4648 BOperClassify::Statistic_); 4649 //-------------------------------------------------------------------- 4650 void BMatMatPartAutoCor::CalcContens() 4651 //-------------------------------------------------------------------- 4652 { 4653 const BMat& M = Mat(Arg(1)); 4654 BInt order = (BInt)Real(Arg(2)); 4655 contens_.Alloc(order,3); 4656 if(contens_.Rows()!=order) { return; } 4657 BDat sigma = 1/Sqrt(M.Data().Size()); 4658 BArray<BDat> acf(order), pacf; 4659 AutoCor(M.Data(), acf, order, 1); 4660 PartAutoCor(acf, pacf); 4661 for(BInt i=0; i<order; i++) 4662 { 4663 contens_(i,0)=i+1; 4664 contens_(i,1)=acf(i); 4637 4665 contens_(i,2)=sigma; 4638 4666 } -
tol/btol/polmat_type/polmatgra.cpp
rb6035f3 re1969fb 34 34 #include <tol/tol_blanguag.h> 35 35 #include <tol/tol_bar.h> 36 #include <tol/tol_barma.h> 36 37 37 38 … … 133 134 } 134 135 136 void Backward(const BPolyn <BDat>& P, 137 const BMatrix <BDat>& X0, 138 const BMatrix <BDat>& X, 139 BMatrix <BDat>& Y); 140 135 141 //-------------------------------------------------------------------- 136 142 bool ApplyMatPol(const BPolMat& P, const BMat& X, BMat& Y) 137 143 //-------------------------------------------------------------------- 138 144 { 139 int i,j,t, h,r=P.Rows(), c = P.Columns(), T = X.Rows();145 int i,j,t,r=P.Rows(), c = P.Columns(), T = X.Rows(); 140 146 if(X.Columns()!=c) { return(false); } 141 BArray< BArray<BDat> > x(c);142 for(j=0; j<c; j++)143 {144 x(j) = X.SubCol(j).Data();145 }146 147 int d = Degree(P); 147 148 int Td = T-d; 148 Y.Alloc(Td,r); 149 Y.SetAllValuesTo(0.0); 150 149 Y.Alloc(Td,r); 151 150 for(i=0; i<r; i++) 152 151 { 153 for(j=0; j<c; j++) 154 { 155 BArray<BDat> z; 156 const BArray<BDat>& xj = x(j); 157 ApplyPolyn(P(i,j),xj,z); 158 for(t=Td-1,h=z.Size()-1; t>=0; t--, h--) 159 { 160 Y(t,i) += z(h); 161 } 152 for(t=0; t<Td; t++) 153 { 154 BDat y = 0; 155 for(j=0; j<c; j++) 156 { 157 for(int h=0; h<P(i,j).Size(); h++) 158 { 159 int k = P(i,j)[h].Degree(); 160 BDat g = P(i,j)[h].Coef(); 161 y+=X(t+d-k,j)*g; 162 } 163 } 164 Y(t,i) = y; 162 165 } 163 166 } -
tol/btol/real_type/datgrav.cpp
rb6035f3 re1969fb 1637 1637 //-------------------------------------------------------------------- 1638 1638 DeclareContensClass(BDat, BDatTemporary, BDatFibonacciSolve); 1639 DefExtOpr(1, BDatFibonacciSolve, "FibonacciSolve", 5, 5,1640 "Code Real Real Real Real ",1641 "(Code f, Real y, Real min, Real max, Real tolerance)",1639 DefExtOpr(1, BDatFibonacciSolve, "FibonacciSolve", 5, 6, 1640 "Code Real Real Real Real Real", 1641 "(Code f, Real y, Real a, Real b, Real tolerance [, Real maxEval])", 1642 1642 I2("Solves the equation f(x) = y using the Fibonacci method between min " 1643 1643 "and max with the given tolerance.", … … 1653 1653 BDat max = Dat (Arg(4)); 1654 1654 BDat tol = Dat (Arg(5)); 1655 int maxEval = -1; 1656 if(Arg(6)) { maxEval = (int)Real(Arg(6)); } 1655 1657 if(min>max) 1656 1658 { … … 1668 1670 { 1669 1671 BRRCode f(code); 1670 contens_ = BFibonacci::Solve(&f,y,min,max,tol); 1671 } 1672 } 1672 contens_ = BFibonacci::Solve(&f,y,min,max,tol,maxEval); 1673 } 1674 } 1675 1673 1676 1674 1677 //-------------------------------------------------------------------- 1675 1678 DeclareContensClass(BDat, BDatTemporary, BDatFibonacciMin); 1676 DefExtOpr(1, BDatFibonacciMin, "FibonacciMin", 5, 5,1677 "Code Real Real Real Real ",1678 "(Code f, Real y, Real a, Real b, Real tolerance )",1679 DefExtOpr(1, BDatFibonacciMin, "FibonacciMin", 5, 6, 1680 "Code Real Real Real Real Real", 1681 "(Code f, Real y, Real a, Real b, Real tolerance [, Real maxEval])", 1679 1682 I2("Minimizes the function f(x) between a and b using the Fibonacci method", 1680 1683 "Minimiza la función f(x) entre a y b por el método de Fibonacci."), … … 1688 1691 BDat max = Dat (Arg(4)); 1689 1692 BDat tol = Dat (Arg(5)); 1693 int maxEval = -1; 1694 if(Arg(6)) { maxEval = (int)Real(Arg(6)); } 1690 1695 if(min>max) 1691 1696 { … … 1703 1708 { 1704 1709 BRRCode f(code); 1705 contens_ = BFibonacci::Minimum(&f,y,min,max,tol );1710 contens_ = BFibonacci::Minimum(&f,y,min,max,tol,maxEval); 1706 1711 } 1707 1712 } -
tol/init.cpp
rb6035f3 re1969fb 881 881 TrcIGS("Anything"); 882 882 InitCommonInstances(GraAnything()); 883 TrcIGS("PolMat ");883 TrcIGS("PolMatrix"); 884 884 InitCommonInstances(GraPolMat()); 885 885 -
tol/lang/language.cpp
rb6035f3 re1969fb 175 175 _str_ref_TimeSet = NewStructSymbol("@TimeSet","TimeSet:V"); 176 176 _str_ref_Serie = NewStructSymbol("@Serie","Serie:V"); 177 _str_ref_PolMat = NewStructSymbol("@PolMat ","PolMat:V");177 _str_ref_PolMat = NewStructSymbol("@PolMatrix","PolMatrix:V"); 178 178 } 179 179 -
tol_tests/tol/LinearAlgebra/PolMatrix/test_0002/check.tol
rb6035f3 re1969fb 3 3 #Require MPM; 4 4 5 Real PutRandomSeed(23453); 6 5 7 Real dim = 2; 6 8 Real deg = 2; 7 Real T = 100 ;9 Real T = 1000; 8 10 9 11 Matrix x = VariableChange::@StableMatrixPolyn:: … … 23 25 Real inequality_constraint_ = -Log(StationaryValue(determinant)); 24 26 25 Matrix X = Rand(T,dim,-1,1); 27 Matrix X0 = Rand(deg,dim,-1,1); 28 Matrix X = Rand(T, dim,-1,1); 26 29 27 Matrix Y = P:X; 30 Matrix Y = P:(X0<<X); 31 32 Matrix Y_ = Group("ConcatColumns",For(1, dim, Matrix(Real i) 33 { 34 SetSum(For(1, dim, Matrix(Real j) 35 { 36 DifEq(PHI[i][j]/1,SubCol(X,[[j]]),SubCol(X0,[[j]])) 37 })) 38 })); 39 40 Matrix Y_t = Group("ConcatColumns",For(1, dim, Matrix(Real i) 41 { 42 SetSum(For(1, dim, Matrix(Real j) 43 { 44 DifEq(PHI[j][i]/1,SubCol(X,[[j]]),SubCol(X0,[[j]])) 45 })) 46 })); 28 47 29 48 … … 33 52 Real eigen.module.max = MatMax(eigen.module); 34 53 Real eigen.module.max.inv = 1/eigen.module.max; 54 35 55 36 56
Note: See TracChangeset
for help on using the changeset viewer.
