SyTen

◆ right_evectors

template<typename Type >
DenseTensor<2, Scalar> syten::DenseEigensolver::DenseEigensolverBase< Type >::right_evectors

Matrix of right eigenvectors, each row contains one eigenvector.

Specifically, M·T(V) is the same as T(V)·M for diagonal D, original matrix M and transposed right_evectors T(V). In code:

DenseTensor<2> mat({10,10}); makeRandom(mat);
DenseTensor<2> dia({10, 10});
for(Index i(0); i != 10; ++i) { dia[{i,i}] = solver.evalues[i]; }
auto rvecs = transpose(solver.right_evectors);
auto mr = prodD<1>(mat, rvecs {-1, 1}, {1, -2});
auto rd = prodD<1>(rvecs, dia {-1, 1}, {1, -2}); // mr == rd
void makeRandom(DenseTensor< rank, Scalar > &a, double b=-2., double e=2.)
Fills the tensor with random values between b and e.
Definition: dense_make.h:12
void transpose(ConstSpan< Scalar > const inp, MutSpan< Scalar > out, ConstSpan< Index > in_perm, ConstSpan< Index > in_dim, Conj do_conj=Conj::n(), bool do_checks=true)
Entry point for transposition of a continuous array into another array.
Definition: dense_transpose.h:373
Dense nonsymmetric eigensolver, nonfunctional template base.
Definition: dense_eigensolver.h:130

Referenced by syten::Pyten::dense_eigensolver().