10using realvec = Eigen::Matrix<real_t, Eigen::Dynamic, 1>;
12using realmat = Eigen::Matrix<real_t, Eigen::Dynamic, Eigen::Dynamic>;
16using rvec = Eigen::Ref<vec>;
18using crvec = Eigen::Ref<const vec>;
22using rmat = Eigen::Ref<mat>;
24using crmat = Eigen::Ref<const mat>;
32using idvec = Eigen::Matrix<index_t, Eigen::Dynamic, 1>;
39template <
class Derived>
40using anymat = Eigen::MatrixBase<Derived>;
43constexpr real_t inf = std::numeric_limits<real_t>::infinity();
45constexpr real_t NaN = std::numeric_limits<real_t>::quiet_NaN();
51template <
class V,
class M>
53 return v.dot(Σ.asDiagonal() * v);
60 return v.template lpNorm<Eigen::Infinity>();
67 return v.template lpNorm<1>();
real_t norm_inf(const Vec &v)
Get the maximum or infinity-norm of the given vector.
real_t norm_1(const Vec &v)
Get the 1-norm of the given vector.
auto norm_squared_weighted(V &&v, M &&Σ)
Get the Σ norm squared of a given vector, with Σ a diagonal matrix.
Eigen::Matrix< real_t, Eigen::Dynamic, Eigen::Dynamic > realmat
Default type for floating point matrices.
Eigen::Ref< const vec > crvec
Default type for immutable references to vectors.
Eigen::Ref< const mat > crmat
Default type for immutable references to matrices.
constexpr real_t NaN
Not a number.
Eigen::Ref< const idvec > cridvec
Immutable reference to vector indices.
realmat mat
Default type for matrices.
index_t length_t
Default type for vector sizes.
realvec vec
Default type for vectors.
Eigen::Matrix< index_t, Eigen::Dynamic, 1 > idvec
Type for a vector of indices.
Eigen::Index index_t
Default type for vector indices.
Eigen::Ref< mat > rmat
Default type for mutable references to matrices.
double real_t
Default floating point type.
Eigen::Ref< idvec > ridvec
Mutable reference to vector indices.
Eigen::MatrixBase< Derived > anymat
Generic type for vector and matrix arguments.
Eigen::Matrix< real_t, Eigen::Dynamic, 1 > realvec
Default type for floating point vectors.
Eigen::Ref< vec > rvec
Default type for mutable references to vectors.