32 const double tol = 1.0e-10;
46 fixedPoint(fp.fixedPoint),
47 fixedPointMap(fp.fixedPointMap)
52 fixedPoint(
VpsInvMap<double>::identity(map.getDimension())),
53 fixedPointMap(map.getDimension()) {
69 for(
int i = 0; i < nFree; i++) {
74 for(
int i = nFree; i < nDim; i++) {
75 for(
int j = 0; j < nDim; j++) A(i, j) = A(j, i) = 0.0;
86 if(error < tol)
break;
93 for(
int limit = 1; limit <= map.
getTopOrder(); limit++) {
98 delta[nFree+1] = limit;
100 for(
int i = 0; i < nFree; i++) {
102 Error(i) = Q[i].getCoefficient(delta);
108 for(
int i = 0; i < nFree; i += 2) {
110 fixedPoint[i].setCoefficient(delta, - Error(i));
111 fixedPoint[i+1].setCoefficient(delta, - Error(i + 1));
115 powers[nFree+1] = limit - 1;
117 fixedPoint[nFree].setCoefficient(powers,
double(limit) * Error(i + 1));
120 fixedPoint[nFree].setCoefficient(powers, -
double(limit) * Error(i));
126 setCoefficient(delta, Q[nFree].getCoefficient(delta));
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
Triangle decomposition of a matrix.
Static fixed point of a map.
int getDimension() const
Get dimension (number of Tps<T> components).
const VpsInvMap< double > & getFixedPointMap() const
Get map around fixed point.
int getTopOrder() const
Get highest order contained in any component.
Vps< T > filter(int lowOrder, int highOrder) const
Extract range of orders, set others to zero.
VpsInvMap< T > inverse() const
Inverse.
VpsInvMap< double > fixedPoint
VpsMap< T > substitute(const VpsMap< T > &vv) const
Substitute.
Matrix< T > linearTerms(const Vector< T > &y) const
Extract linear terms at point.
const VpsInvMap< double > & getFixedPoint() const
Get the transformation to the fixed point.
Exponent array for Tps<T>.
static Tps< T > makeVariable(int nVar, int var)
Make variable.
void backSubstitute(Vector< T > &B) const
Back substitution.
Vector< T > constantTerm(const Vector< T > &y) const
Evaluate map at point.
VpsInvMap< double > fixedPointMap