41 template <
class _Left,
class _Right>
91 return l * CepsMathVertex::Ones() + r;
98 return l * CepsMathVertex::Ones() - r;
112 CEPS_ABORT(
"operation scalar/vertex is undefined");
128 return l * CepsMathTensor::Ones() + r;
135 return l * CepsMathTensor::Ones() - r;
149 CEPS_ABORT(
"operation scalar/tensor is undefined");
165 return l + r * CepsMathVertex::Ones();
172 return l - r * CepsMathVertex::Ones();
222 CEPS_ABORT(
"operation vertex/vertex is undefined");
238 CEPS_ABORT(
"operation vertex+tensor is undefined");
246 CEPS_ABORT(
"operation vertex-tensor is undefined");
254 return (l.transpose() * r).transpose();
261 CEPS_ABORT(
"operation vertex/tensor is undefined");
277 return l + r * CepsMathTensor::Ones();
284 return l - r * CepsMathTensor::Ones();
313 CEPS_ABORT(
"operation tensor+vertex is undefined");
321 CEPS_ABORT(
"operation tensor-vertex is undefined");
336 CEPS_ABORT(
"operation tensor/vertex is undefined");
373 CEPS_ABORT(
"operation tensor/tensor is undefined");
#define CEPS_ABORT(message)
Stops the execution with a message. If testing is enabled, only throws a runtime_error.
CepsScalar CepsMathScalar
Real numbers.
Eigen::Matrix< CepsScalar, 3, 3 > CepsMathTensor
Tensor, eigen format.
Eigen::Matrix< CepsScalar, 3, 1 > CepsMathVertex
Vertex, eigen format.
static CepsMathScalar div(const CepsMathScalar &l, const CepsMathScalar &r)
scalar/scalar -> scalar
static CepsMathScalar minus(const CepsMathScalar &l, const CepsMathScalar &r)
scalar-scalar -> scalar
static CepsMathScalar plus(const CepsMathScalar &l, const CepsMathScalar &r)
scalar+scalar -> scalar
static CepsMathScalar mult(const CepsMathScalar &l, const CepsMathScalar &r)
scalar*scalar -> scalar
static CepsMathTensor plus(const CepsMathScalar &l, const CepsMathTensor &r)
scalar+tensor -> tensor
static CepsMathTensor minus(const CepsMathScalar &l, const CepsMathTensor &r)
scalar-tensor -> tensor
static CepsMathTensor div(const CepsMathScalar &l, const CepsMathTensor &r)
scalar/tensor -> tensor [undefined]
static CepsMathTensor mult(const CepsMathScalar &l, const CepsMathTensor &r)
scalar*tensor -> tensor
static CepsMathVertex div(const CepsMathScalar &l, const CepsMathVertex &r)
scalar/vertex -> vertex [undefined]
static CepsMathVertex plus(const CepsMathScalar &l, const CepsMathVertex &r)
scalar+vertex -> vertex
static CepsMathVertex minus(const CepsMathScalar &l, const CepsMathVertex &r)
scalar-vertex -> vertex
static CepsMathVertex mult(const CepsMathScalar &l, const CepsMathVertex &r)
scalar*vertex -> vertex
static CepsMathTensor div(const CepsMathTensor &l, const CepsMathScalar &r)
tensor/scalar -> tensor
static CepsMathTensor minus(const CepsMathTensor &l, const CepsMathScalar &r)
tensor-scalar -> tensor
static CepsMathTensor plus(const CepsMathTensor &l, const CepsMathScalar &r)
tensor+scalar -> tensor
static CepsMathTensor mult(const CepsMathTensor &l, const CepsMathScalar &r)
tensor*scalar -> tensor
static CepsMathTensor mult(const CepsMathTensor &l, const CepsMathTensor &r)
tensor*tensor -> tensor
static CepsMathTensor minus(const CepsMathTensor &l, const CepsMathTensor &r)
tensor-scalar -> tensor
static CepsMathTensor plus(const CepsMathTensor &l, const CepsMathTensor &r)
tensor+scalar -> tensor
static CepsMathTensor div(const CepsMathTensor &l, const CepsMathTensor &r)
tensor/tensor -> tensor [undefined]
static CepsMathTensor plus(const CepsMathTensor &l, const CepsMathVertex &r)
tensor+vertex -> tensor [undefined]
static CepsMathTensor minus(const CepsMathTensor &l, const CepsMathVertex &r)
tensor-vertex -> tensor [undefined]
static CepsMathTensor div(const CepsMathTensor &l, const CepsMathVertex &r)
tensor/vertex -> tensor [undefined]
static CepsMathVertex mult(const CepsMathTensor &l, const CepsMathVertex &r)
tensor*vertex -> vertex
static CepsMathVertex mult(const CepsMathVertex &l, const CepsMathScalar &r)
vertex*scalar -> vertex
static CepsMathVertex div(const CepsMathVertex &l, const CepsMathScalar &r)
vertex*scalar -> vertex
static CepsMathVertex minus(const CepsMathVertex &l, const CepsMathScalar &r)
vertex-scalar -> vertex
static CepsMathVertex plus(const CepsMathVertex &l, const CepsMathScalar &r)
vertex+scalar -> vertex
static CepsMathTensor minus(const CepsMathVertex &l, const CepsMathTensor &r)
vertex-tensor -> vertex [undefined]
static CepsMathTensor div(const CepsMathVertex &l, const CepsMathTensor &r)
vertex/tensor -> vertex [undefined]
static CepsMathVertex mult(const CepsMathVertex &l, const CepsMathTensor &r)
vertex*tensor -> vertex (v.t*t).t
static CepsMathTensor plus(const CepsMathVertex &l, const CepsMathTensor &r)
vertex+tensor -> vertex [undefined]
static CepsMathVertex minus(const CepsMathVertex &l, const CepsMathVertex &r)
vertex-vertex -> vertex
static CepsMathVertex plus(const CepsMathVertex &l, const CepsMathVertex &r)
vertex+vertex -> vertex
static CepsMathVertex div(const CepsMathVertex &l, const CepsMathVertex &r)
vertex/vertex -> vertex [undefined]
static CepsMathScalar mult(const CepsMathVertex &l, const CepsMathVertex &r)
vertex*vertex -> scalar
Ceps math operator functor, holds (+,-,*,/) definitions depending on mathematical definitions,...