Lines Matching refs:degree
57 void computePade(int degree, const MatrixType& IminusT, MatrixType& res) const;
95 void MatrixPowerAtomic<MatrixType>::computePade(int degree, const MatrixType& IminusT, MatrixType& res) const
97 int i = degree<<1;
98 res = (m_p-degree) / ((i-1)<<1) * IminusT;
139 int degree, degree2, numberOfSquareRoots = 0;
162 degree = getPadeDegree(normIminusT);
164 if (degree - degree2 <= 1 || hasExtraSquareRoot)
172 computePade(degree, IminusT, res);
184 const float maxNormForPade[] = { 2.8064004e-1f /* degree = 3 */ , 4.3386528e-1f };
185 int degree = 3;
186 for (; degree <= 4; ++degree)
187 if (normIminusT <= maxNormForPade[degree - 3])
189 return degree;
195 const double maxNormForPade[] = { 1.884160592658218e-2 /* degree = 3 */ , 6.038881904059573e-2, 1.239917516308172e-1,
197 int degree = 3;
198 for (; degree <= 7; ++degree)
199 if (normIminusT <= maxNormForPade[degree - 3])
201 return degree;
209 const double maxNormForPade[] = { 1.884160592658218e-2L /* degree = 3 */ , 6.038881904059573e-2L, 1.239917516308172e-1L,
213 const double maxNormForPade[] = { 6.3854693117491799460e-3L /* degree = 3 */ , 2.6394893435456973676e-2L,
217 const double maxNormForPade[] = { 1.0007161601787493236741409687186e-4L /* degree = 3 */ ,
223 const double maxNormForPade[] = { 5.524506147036624377378713555116378e-5L /* degree = 3 */ ,
229 int degree = 3;
230 for (; degree <= maxPadeDegree; ++degree)
231 if (normIminusT <= maxNormForPade[degree - 3])
233 return degree;