Functions | |
template<typename value_type > | |
auto | construct_projected_solution (const subspace::Matrix< value_type > &solutions, const subspace::Dimensions &dims, const std::vector< int > &remove_qspace, Logger &logger) |
Projects solution from the full subspace on to Q_{delete} and current D space. More... | |
template<typename value_type > | |
auto | construct_projected_solutions_overlap (const subspace::Matrix< value_type > &solutions_proj, const subspace::Matrix< value_type > &overlap, const subspace::Dimensions &dims, const std::vector< int > &remove_qspace, Logger &logger) |
Constructs overlap matrix for projected solutions. More... | |
template<typename value_type , typename value_type_abs > | |
void | remove_null_norm_and_normalise (subspace::Matrix< value_type > ¶meters, subspace::Matrix< value_type > &overlap, const value_type_abs norm_thresh, Logger &logger) |
Removes parameters with norm less than threshold and normalises the rest. More... | |
template<typename value_type , typename value_type_abs > | |
auto | remove_null_projected_solutions (const subspace::Matrix< value_type > &solutions_proj, const subspace::Matrix< value_type > &overlap_proj, const value_type_abs svd_thresh, Logger &logger) |
Transforms to a stable subspace of projected solutions via SVD. More... | |
template<typename value_type > | |
auto | construct_full_subspace_overlap (const subspace::Matrix< value_type > &solutions_proj, const subspace::Dimensions &dims, const std::vector< int > &remove_qspace, const subspace::Matrix< value_type > &overlap, const size_t nR) |
Constructs overlap matrix of P+Q+R+(projected solutions) subspaces, where Q is without removed parameters. More... | |
auto molpro::linalg::itsolv::detail::dspace::construct_full_subspace_overlap | ( | const subspace::Matrix< value_type > & | solutions_proj, |
const subspace::Dimensions & | dims, | ||
const std::vector< int > & | remove_qspace, | ||
const subspace::Matrix< value_type > & | overlap, | ||
const size_t | nR | ||
) |
Constructs overlap matrix of P+Q+R+(projected solutions) subspaces, where Q is without removed parameters.
solutions_proj | solutions matrix with Q deleted + current D space as columns |
dims | dimensions of the current subspace |
remove_qspace | indices of Q parameters to be removed |
overlap | overlap of current subspace P+Q+D+R, including all of the current Q space |
nR | number of new parameters |
auto molpro::linalg::itsolv::detail::dspace::construct_projected_solution | ( | const subspace::Matrix< value_type > & | solutions, |
const subspace::Dimensions & | dims, | ||
const std::vector< int > & | remove_qspace, | ||
Logger & | logger | ||
) |
Projects solution from the full subspace on to Q_{delete} and current D space.
solutions | solution matrix in the full subspace |
dims | dimensions for partitioning of subspace |
remove_qspace | indices to remove from current Q space and move into Q_{delete} |
norm_thresh | vectors with norm less than this threshold are considered null |
auto molpro::linalg::itsolv::detail::dspace::construct_projected_solutions_overlap | ( | const subspace::Matrix< value_type > & | solutions_proj, |
const subspace::Matrix< value_type > & | overlap, | ||
const subspace::Dimensions & | dims, | ||
const std::vector< int > & | remove_qspace, | ||
Logger & | logger | ||
) |
Constructs overlap matrix for projected solutions.
x_i = \sum_j C_ij u_j <x_i, x_i> = \sum_j \sum_k C_ij C_ik <u_j, u_k> <x_i, x_j> = \sum_k \sum_l C_ik C_jl <u_j, u_l>
solutions_proj | solutions matrix projected onto Qd+D space |
dims | dimensions for partitioning of subspace |
remove_qspace | indices to remove from current Q space and move into Q_{delete} |
overlap | overlap matrix of the current subspace |
logger | logger |
void molpro::linalg::itsolv::detail::dspace::remove_null_norm_and_normalise | ( | subspace::Matrix< value_type > & | parameters, |
subspace::Matrix< value_type > & | overlap, | ||
const value_type_abs | norm_thresh, | ||
Logger & | logger | ||
) |
Removes parameters with norm less than threshold and normalises the rest.
parameters | row major matrix of parameters |
overlap | overlap matrix of parameters |
norm_thresh | norm threhsold |
logger | logger |
auto molpro::linalg::itsolv::detail::dspace::remove_null_projected_solutions | ( | const subspace::Matrix< value_type > & | solutions_proj, |
const subspace::Matrix< value_type > & | overlap_proj, | ||
const value_type_abs | svd_thresh, | ||
Logger & | logger | ||
) |
Transforms to a stable subspace of projected solutions via SVD.
Performs SVD and transforms to right-singular vectors with singular values greater than threshold.
solutions_proj | solutions projected onto Qd+D space |
solutions | solutions in the current subspace |
overlap_proj | overlap matrix of projected solutions |
norm_thresh | |
logger |