1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_PSPACE_H
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_PSPACE_H
3#include <molpro/linalg/array/ArrayHandler.h>
4#include <molpro/linalg/itsolv/subspace/SubspaceData.h>
5#include <molpro/linalg/itsolv/wrap.h>
9template <
class Rt,
class Pt>
16 for (
const auto& p :
params)
17 m_params.emplace_back(handler.
copy(p));
24 size_t size()
const {
return m_params.size(); }
26 void erase(
size_t i) { m_params.erase(m_params.begin() + i); }
29 std::vector<P> m_params;
Enhances various operations between pairs of arrays and allows dynamic code injection with uniform in...
Definition: ArrayHandler.h:162
virtual AL copy(const AR &source)=0
VecRef< P > params()
Definition: PSpace.h:22
void update(const CVecRef< P > ¶ms, array::ArrayHandler< P, P > &handler)
Definition: PSpace.h:15
CVecRef< P > params() const
Definition: PSpace.h:20
size_t size() const
Definition: PSpace.h:24
Rt R
Definition: PSpace.h:12
Pt P
Definition: PSpace.h:13
void erase(size_t i)
Definition: PSpace.h:26
CVecRef< P > cparams() const
Definition: PSpace.h:21
auto cwrap(ForwardIt begin, ForwardIt end)
Takes a begin and end iterators and returns a vector of references to each element.
Definition: wrap.h:52
auto wrap(ForwardIt begin, ForwardIt end)
Takes a begin and end iterators and returns a vector of references to each element.
Definition: wrap.h:32
std::vector< std::reference_wrapper< const A > > CVecRef
Definition: wrap.h:14
std::vector< std::reference_wrapper< A > > VecRef
Definition: wrap.h:11