11 #if MUQ_HAS_SUNDIALS==1
33 unsigned int Size(boost::any
const& obj,
int const dim=-1)
const;
40 double Norm(boost::any
const& obj)
const;
48 double InnerProduct(boost::any
const& vec1, boost::any
const& vec2)
const;
56 boost::any
OuterProduct(boost::any
const& vec1, boost::any
const& vec2)
const;
66 boost::any
AccessElement(boost::any
const& obj,
unsigned int const i = 0,
unsigned int const j = 0)
const;
74 boost::any
Zero(std::type_info
const& type,
unsigned int const rows = 0,
unsigned int const cols = 0)
const;
81 bool IsZero(boost::any
const& obj)
const;
91 boost::any
Identity(std::type_info
const& type,
unsigned int const rows=0,
unsigned int const cols=0)
const;
99 boost::any
Add(boost::any
const& in0, boost::any
const& in1)
const;
107 boost::any
Subtract(boost::any
const& in0, boost::any
const& in1)
const;
115 boost::any
Multiply(boost::any
const& in0, boost::any
const& in1)
const;
124 boost::any
ApplyInverse(boost::any
const& A, boost::any
const& x)
const;
133 boost::any
Apply(boost::any
const& A, boost::any
const& x)
const;
140 boost::any
Inverse(boost::any
const& obj)
const;
148 boost::any
SquareRoot(boost::any
const& obj)
const;
166 virtual unsigned int SizeImpl(boost::any
const& obj)
const;
173 virtual double NormImpl(boost::any
const& obj)
const;
181 virtual double InnerProductImpl(boost::any
const& vec1, boost::any
const& vec2)
const;
189 virtual boost::any
OuterProductImpl(boost::any
const& vec1, boost::any
const& vec2)
const;
198 virtual boost::any
AccessElementImpl(boost::any
const& vec,
unsigned int const i)
const;
207 virtual boost::any
IdentityImpl(std::type_info
const& type,
unsigned int const rows,
unsigned int const cols)
const;
216 virtual boost::any
AddImpl(boost::any
const& in0, boost::any
const& in1)
const;
225 virtual boost::any
SubtractImpl(boost::any
const& in0, boost::any
const& in1)
const;
234 virtual boost::any
MultiplyImpl(boost::any
const& in0, boost::any
const& in1)
const;
243 virtual boost::any
ApplyImpl(boost::any
const& A, boost::any
const& x)
const;
252 virtual boost::any
ApplyInverseImpl(boost::any
const& A, boost::any
const& x)
const;
260 virtual boost::any
ZeroImpl(std::type_info
const& type,
unsigned int const rows,
unsigned int const cols)
const;
267 virtual bool IsZeroImpl(boost::any
const& obj)
const;
274 virtual boost::any
InverseImpl(boost::any
const& obj)
const;
Implement a generic way to do algebric operations on boost::any's.
virtual boost::any ZeroImpl(std::type_info const &type, unsigned int const rows, unsigned int const cols) const
Compute a zero object for boost::any.
virtual boost::any IdentityImpl(std::type_info const &type, unsigned int const rows, unsigned int const cols) const
Compute an identity object.
boost::any Add(boost::any const &in0, boost::any const &in1) const
Add two objects together.
AnyAlgebra()
Default constructor.
boost::any Identity(std::type_info const &type, unsigned int const rows=0, unsigned int const cols=0) const
Compute an identity object.
boost::any Inverse(boost::any const &obj) const
The inverse.
virtual boost::any SquareRootImpl(boost::any const &obj) const
Compute the square root of an object.
boost::any OuterProduct(boost::any const &vec1, boost::any const &vec2) const
The outer product between two vectors.
boost::any Apply(boost::any const &A, boost::any const &x) const
Apply a matrix (mat-vec)
boost::any Zero(std::type_info const &type, unsigned int const rows=0, unsigned int const cols=0) const
Compute a zero vector.
double InnerProduct(boost::any const &vec1, boost::any const &vec2) const
The inner product between two vectors.
virtual boost::any SubtractImpl(boost::any const &in0, boost::any const &in1) const
Subtract two objects.
virtual bool IsZeroImpl(boost::any const &obj) const
Determine if an object is the zero object.
double LogDeterminate(boost::any const &obj) const
Compute the log-determinate.
virtual boost::any AddImpl(boost::any const &in0, boost::any const &in1) const
Add two objects together.
virtual double InnerProductImpl(boost::any const &vec1, boost::any const &vec2) const
The inner product between two vectors.
virtual double LogDeterminateImpl(boost::any const &obj) const
Compute the log-determinate.
virtual double NormImpl(boost::any const &obj) const
The norm of an object.
virtual boost::any ApplyImpl(boost::any const &A, boost::any const &x) const
Apply a matrix (mat-vec)
boost::any SquareRoot(boost::any const &obj) const
Compute the square root of an object.
virtual boost::any ApplyInverseImpl(boost::any const &A, boost::any const &x) const
Apply the inverse of a matrix.
virtual boost::any OuterProductImpl(boost::any const &vec1, boost::any const &vec2) const
The outer product between two vectors.
boost::any Multiply(boost::any const &in0, boost::any const &in1) const
Multiply two objects.
unsigned int Size(boost::any const &obj, int const dim=-1) const
The size of an object.
bool IsZero(boost::any const &obj) const
Determine if an object is the zero object.
boost::any Subtract(boost::any const &in0, boost::any const &in1) const
Subtract two objects.
boost::any ApplyInverse(boost::any const &A, boost::any const &x) const
Apply the inverse of a matrix.
double Norm(boost::any const &obj) const
The norm of an object.
boost::any AccessElement(boost::any const &obj, unsigned int const i=0, unsigned int const j=0) const
Access an element of a vector/matrix.
virtual boost::any AccessElementImpl(boost::any const &vec, unsigned int const i) const
Access an element of a vector.
virtual boost::any MultiplyImpl(boost::any const &in0, boost::any const &in1) const
Multiply two objects.
virtual boost::any InverseImpl(boost::any const &obj) const
The inverse.
virtual unsigned int SizeImpl(boost::any const &obj) const
The size of an object (implemented by a child for non standard types)