1#ifndef EXTERIOR_EVALUATION_HPP
2#define EXTERIOR_EVALUATION_HPP
14 template<
size_t d_outer,
size_t d>
18 _r(r),_A(A),_C(C),_T(T) {
static_assert(d < d_outer &&
"Object dimension should be less than space dimension");}
21 double evaluate(
const Eigen::Vector<double, d_outer> &x,
size_t i)
const {
22 assert((_r >= 0) &&
"Basis not initialized");
25 Eigen::Vector<double, d> y = _A*_T*x + _C;
26 double rv = std::pow(y(0),power[0]);
27 for (
size_t i = 1; i < d; ++i) {
28 rv *= std::pow(y(i),power[i]);
36 Eigen::Vector<double, d> _C;
37 Eigen::Matrix<double, d, d_outer> _T;
47 double evaluate(
const Eigen::Vector<double, d> &x,
size_t i)
const {
48 assert((_r >= 0) &&
"Basis not initialized");
51 Eigen::Vector<double, d> y = _A*x + _C;
52 double rv = std::pow(y(0),power[0]);
53 for (
size_t i = 1; i < d; ++i) {
54 rv *= std::pow(y(i),power[i]);
62 Eigen::Vector<double, d> _C;
Monomial_scalar_basis_linear_ID(double A, Eigen::Vector< double, d > const &C, Eigen::Matrix< double, d, d > const &T, int r)
Definition exterior_evaluation.hpp:43
double evaluate(const Eigen::Vector< double, d > &x, size_t i) const
Definition exterior_evaluation.hpp:47
Monomial_scalar_basis_linear_ID()
Definition exterior_evaluation.hpp:45
Definition exterior_evaluation.hpp:15
double evaluate(const Eigen::Vector< double, d_outer > &x, size_t i) const
Definition exterior_evaluation.hpp:21
Monomial_scalar_basis_linear_ID()
Definition exterior_evaluation.hpp:19
Monomial_scalar_basis_linear_ID(double A, Eigen::Vector< double, d > const &C, Eigen::Matrix< double, d, d_outer > const &T, int r)
Definition exterior_evaluation.hpp:17
constexpr size_t PolyDim(int r, size_t d) noexcept
Dimension of P^r(\Real^d)
Definition exterior_dimension.hpp:25
Definition exterior.hpp:24
static std::vector< std::array< size_t, d > > const & complete(const int r)
Definition exterior.hpp:299