175 |
|
* @param w output eigenvalues |
176 |
|
* @param v output eigenvectors |
177 |
|
*/ |
178 |
< |
void jacobi(const SquareMatrix<Real, Dim>& a, |
179 |
< |
Vector<Real, Dim>& w, |
178 |
> |
bool jacobi(const SquareMatrix<Real, Dim>& a, Vector<Real, Dim>& w, |
179 |
|
SquareMatrix<Real, Dim>& v); |
180 |
|
};//end SquareMatrix |
181 |
|
|
183 |
|
#define ROT(a,i,j,k,l) g=a(i, j);h=a(k, l);a(i, j)=g-s*(h+g*tau);a(k, l)=h+s*(g-h*tau) |
184 |
|
#define MAX_ROTATIONS 60 |
185 |
|
|
186 |
< |
template<Real, int Dim> |
187 |
< |
void SquareMatrix<Real, int Dim>::jacobi(SquareMatrix<Real, Dim>& a, |
188 |
< |
Vector<Real, Dim>& w, |
190 |
< |
SquareMatrix<Real, Dim>& v) { |
186 |
> |
template<typename Real, int Dim> |
187 |
> |
bool SquareMatrix<Real, Dim>::jacobi(const SquareMatrix<Real, Dim>& a, Vector<Real, Dim>& w, |
188 |
> |
SquareMatrix<Real, Dim>& v) { |
189 |
|
const int N = Dim; |
190 |
|
int i, j, k, iq, ip; |
191 |
|
double tresh, theta, tau, t, sm, s, h, g, c; |
323 |
|
|
324 |
|
} |
325 |
|
|
328 |
– |
|
329 |
– |
} |
326 |
|
#endif //MATH_SQUAREMATRIX_HPP |