Changeset 3c5b71c in tol
- Timestamp:
- Mar 6, 2012, 9:36:06 AM (15 years ago)
- Branches:
- 1941-docker-image-to-test, devel, master
- Children:
- c42f354
- Parents:
- abbbbef
- Location:
- tol/btol/bmodel
- Files:
-
- 2 edited
-
estim.cpp (modified) (1 diff)
-
modcalc.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tol/btol/bmodel/estim.cpp
rabbbbef r3c5b71c 2073 2073 } 2074 2074 2075 2076 2077 2078 2079 BPolyn<BDat> ReversePolyn(const BPolyn<BDat>& p); 2080 void VectorToSchur(BPolyn<BDat>& p, const BArray<BDat>& v, int n, int n0); 2081 void SchurToVector(BArray<BDat>& v, const BPolyn<BDat>& p, int n0); 2082 2083 //-------------------------------------------------------------------- 2084 DeclareContensClass(BPol, BPolTemporary, BPolUncVec2SttPol); 2085 DefExtOpr(1, BPolUncVec2SttPol, "UncVec2SttPol", 2, 3, 2086 "Matrix Real Real", 2087 "(Matrix vec, Real period [, Real iniPos] )", 2088 "Returns the stationary polynomial represented by an unconstrained " 2089 "vector. The inverse function is SttPol2UncVec.", 2090 BOperClassify::Sthocastic_); 2091 //-------------------------------------------------------------------- 2092 void BPolUncVec2SttPol::CalcContens() 2093 //-------------------------------------------------------------------- 2094 { 2095 BMatrix<BDat>& V = Mat(Arg(1)); 2096 const BArray<BDat>& vec = V.Data(); 2097 int n = vec.Size(); 2098 if(n==0) { contens_ = BPolyn<BDat>::One(); } 2099 else 2100 { 2101 int period = (int)Real(Arg(2)); 2102 int iniPos = 0; 2103 if(Arg(3)) { iniPos = (int)Real(Arg(3)); } 2104 int d; 2105 BPolyn<BDat> q; 2106 VectorToSchur(q, vec, n, iniPos); 2107 for(d = 0; d<q.Size(); d++) { q(d).PutDegree(q(d).Degree()*period); } 2108 contens_ = ReversePolyn(q); 2109 } 2110 } 2111 2112 2113 //-------------------------------------------------------------------- 2114 DeclareContensClass(BMat, BMatTemporary, BMatSttPol2UncVec); 2115 DefExtOpr(1, BMatSttPol2UncVec, "SttPol2UncVec", 2, 2, "Polyn Real", 2116 "(Polyn pol, Real period)", 2117 "Returns the unconstrained column vector representing an stationary " 2118 "polynomial. The inverse function is UncVec2SttPol.", 2119 BOperClassify::Sthocastic_); 2120 //-------------------------------------------------------------------- 2121 void BMatSttPol2UncVec::CalcContens() 2122 //-------------------------------------------------------------------- 2123 { 2124 BPolyn<BDat>& pol = Pol(Arg(1)); 2125 int period =(int)Real(Arg(2)); 2126 int n = pol.Degree()/period; 2127 if(n<=0) 2128 { 2129 contens_.Alloc(0,1); 2130 } 2131 else 2132 { 2133 contens_.Alloc(n,1); 2134 BArray<BDat>& vec = contens_.GetData(); 2135 int d; 2136 BPolyn<BDat> q = pol; 2137 for(d = 0; d<q.Size(); d++) { q(d).PutDegree(q(d).Degree()/period); } 2138 q = ReversePolyn(q); 2139 SchurToVector(vec, q, 0); 2140 } 2141 } 2142 -
tol/btol/bmodel/modcalc.cpp
rabbbbef r3c5b71c 818 818 819 819 //-------------------------------------------------------------------- 820 staticBPolyn<BDat> ReversePolyn(const BPolyn<BDat>& p)820 BPolyn<BDat> ReversePolyn(const BPolyn<BDat>& p) 821 821 //-------------------------------------------------------------------- 822 822 { … … 829 829 830 830 //-------------------------------------------------------------------- 831 staticvoid SchurToVector(BArray<BDat>& v, const BPolyn<BDat>& p, int n0)831 void SchurToVector(BArray<BDat>& v, const BPolyn<BDat>& p, int n0) 832 832 //-------------------------------------------------------------------- 833 833 { … … 864 864 865 865 //-------------------------------------------------------------------- 866 staticvoid VectorToSchur(BPolyn<BDat>& p, const BArray<BDat>& v, int n, int n0)866 void VectorToSchur(BPolyn<BDat>& p, const BArray<BDat>& v, int n, int n0) 867 867 //-------------------------------------------------------------------- 868 868 {
Note: See TracChangeset
for help on using the changeset viewer.
