Classes | |
| struct | NewData |
| New sections of equation data. More... | |
Functions | |
| template<class R , class Q , class P > | |
| auto | update_qspace_data (const CVecRef< R > ¶ms, const CVecRef< R > &actions, const CVecRef< P > &pparams, const CVecRef< Q > &qparams, const CVecRef< Q > &qactions, const CVecRef< Q > &dparams, const CVecRef< Q > &dactions, const CVecRef< Q > &rhs, const Dimensions &dims, ArrayHandlers< R, Q, P > &handlers, Logger &logger, bool hermitian=false, bool action_dot_action=false, const CVecRef< R > &metric_actions={}) |
| Returns new sections of equation data. | |
| template<class Q , class P > | |
| auto | update_dspace_overlap_data (const CVecRef< P > &pparams, const CVecRef< Q > &qparams, const CVecRef< Q > &dparams, const CVecRef< Q > &rhs, array::ArrayHandler< Q, P > &handler_qp, array::ArrayHandler< Q, Q > &handler_qq, Logger &logger) |
| Calculates overlap blocks between D space and the rest of the subspace. | |
| template<class Q , class P > | |
| auto | update_dspace_action_data (const CVecRef< P > &pparams, const CVecRef< Q > &qparams, const CVecRef< Q > &qactions, const CVecRef< Q > &dparams, const CVecRef< Q > &dactions, array::ArrayHandler< Q, P > &handler_qp, array::ArrayHandler< Q, Q > &handler_qq, Logger &logger) |
| Calculates action blocks between D space and the rest of the subspace. | |
| template<typename value_type > | |
| Matrix< value_type > | metric_with_new_dspace (const Matrix< value_type > &metric, const Dimensions &dims, const std::vector< std::size_t > &q_delete, const Matrix< value_type > &dcoefficients) |
| The metric matrix of the subspace after the deletion of Q vectors and their replacement, together with the old D vectors, by new D vectors, obtained by transforming the current metric matrix rather than from the vectors. | |
| template<typename T > | |
| void | copy_dspace_eqn_data (const NewData< T > &new_data, SubspaceData< T > &data, const subspace::EqnData e, const Dimensions &dims) |
| void molpro::linalg::itsolv::subspace::xspace::copy_dspace_eqn_data | ( | const NewData< T > & | new_data, |
| SubspaceData< T > & | data, | ||
| const subspace::EqnData | e, | ||
| const Dimensions & | dims | ||
| ) |
| Matrix< value_type > molpro::linalg::itsolv::subspace::xspace::metric_with_new_dspace | ( | const Matrix< value_type > & | metric, |
| const Dimensions & | dims, | ||
| const std::vector< std::size_t > & | q_delete, | ||
| const Matrix< value_type > & | dcoefficients | ||
| ) |
The metric matrix of the subspace after the deletion of Q vectors and their replacement, together with the old D vectors, by new D vectors, obtained by transforming the current metric matrix rather than from the vectors.
| metric | the current metric matrix |
| dims | the current dimensions |
| q_delete | indices of the Q vectors to be deleted |
| dcoefficients | the coefficients of the new D vectors, as returned by construct_dspace() |
| auto molpro::linalg::itsolv::subspace::xspace::update_dspace_action_data | ( | const CVecRef< P > & | pparams, |
| const CVecRef< Q > & | qparams, | ||
| const CVecRef< Q > & | qactions, | ||
| const CVecRef< Q > & | dparams, | ||
| const CVecRef< Q > & | dactions, | ||
| array::ArrayHandler< Q, P > & | handler_qp, | ||
| array::ArrayHandler< Q, Q > & | handler_qq, | ||
| Logger & | logger | ||
| ) |
Calculates action blocks between D space and the rest of the subspace.
| auto molpro::linalg::itsolv::subspace::xspace::update_dspace_overlap_data | ( | const CVecRef< P > & | pparams, |
| const CVecRef< Q > & | qparams, | ||
| const CVecRef< Q > & | dparams, | ||
| const CVecRef< Q > & | rhs, | ||
| array::ArrayHandler< Q, P > & | handler_qp, | ||
| array::ArrayHandler< Q, Q > & | handler_qq, | ||
| Logger & | logger | ||
| ) |
Calculates overlap blocks between D space and the rest of the subspace.
| auto molpro::linalg::itsolv::subspace::xspace::update_qspace_data | ( | const CVecRef< R > & | params, |
| const CVecRef< R > & | actions, | ||
| const CVecRef< P > & | pparams, | ||
| const CVecRef< Q > & | qparams, | ||
| const CVecRef< Q > & | qactions, | ||
| const CVecRef< Q > & | dparams, | ||
| const CVecRef< Q > & | dactions, | ||
| const CVecRef< Q > & | rhs, | ||
| const Dimensions & | dims, | ||
| ArrayHandlers< R, Q, P > & | handlers, | ||
| Logger & | logger, | ||
| bool | hermitian = false, |
||
| bool | action_dot_action = false, |
||
| const CVecRef< R > & | metric_actions = {} |
||
| ) |
Returns new sections of equation data.
If metric_actions is not empty, the blocks of the metric matrix, EqnData::M, are calculated too, from the actions of the metric on the new parameters alone: as the metric M is Hermitian, <x|M b> = <M x|b> for a new parameter x and any subspace vector b. These are calculated together with the overlaps <x|b>, so that each b is read once.