math::InnerProduct< I, Vector, Scalar > Struct Template Reference
Concept InnerProduct. More...
#include <vector_concepts.hpp>


Public Member Functions | |
| axiom | ConjugateSymmetry (I inner, Vector v, Vector w) |
| The arguments can be changed and the result is then the complex conjugate. | |
| axiom | SequiLinearity (I inner, Scalar a, Scalar b, Vector u, Vector v, Vector w) |
| The inner product is linear in the second argument and conjugate linear in the first one. | |
| axiom | NonNegativity (I inner, Vector v, MagnitudeType< Scalar >::type magnitude) |
| The inner product of a vector with itself is not negative. | |
| axiom | NonDegeneracy (I inner, Vector v, Vector w, Scalar s) |
| Non-degeneracy not representable with axiom. | |
Public Attributes | |
| associated_type | magnitude_type |
| Associated type: the real magnitude type of the scalar. | |
Concept InnerProduct.
Semantic requirements of a inner product
| I | The inner product functor |
| Vector | The the type of a vector or a collection |
| Scalar | The scalar over which the vector field is defined |
| axiom math::InnerProduct< I, Vector, Scalar >::ConjugateSymmetry | ( | I | inner, |
| Vector | v, | ||
| Vector | w | ||
| ) | [inline] |
The arguments can be changed and the result is then the complex conjugate.
inner(v, w) == conj(inner(w, v));
| axiom math::InnerProduct< I, Vector, Scalar >::NonDegeneracy | ( | I | inner, |
| Vector | v, | ||
| Vector | w, | ||
| Scalar | s | ||
| ) | [inline] |
Non-degeneracy not representable with axiom.
| axiom math::InnerProduct< I, Vector, Scalar >::NonNegativity | ( | I | inner, |
| Vector | v, | ||
| MagnitudeType< Scalar >::type | magnitude | ||
| ) | [inline] |
The inner product of a vector with itself is not negative.
inner(v, v) == conj(inner(v, v)) implies inner(v, v) is representable as real
magnitude_type(inner(v, v)) >= zero(magnitude);
| axiom math::InnerProduct< I, Vector, Scalar >::SequiLinearity | ( | I | inner, |
| Scalar | a, | ||
| Scalar | b, | ||
| Vector | u, | ||
| Vector | v, | ||
| Vector | w | ||
| ) | [inline] |
The inner product is linear in the second argument and conjugate linear in the first one.
The equalities are partly redundant with ConjugateSymmetry
inner(v, b * w) == b * inner(v, w);
inner(u, v + w) == inner(u, v) + inner(u, w);
inner(a * v, w) == conj(a) * inner(v, w);
inner(u + v, w) == inner(u, w) + inner(v, w);
| associated_type math::InnerProduct< I, Vector, Scalar >::magnitude_type |
Associated type: the real magnitude type of the scalar.
By default RealMagnitude<Scalar>::type
math::InnerProduct< I, Vector, Scalar > Struct Template Reference -- MTL 4 -- Peter Gottschling and Andrew Lumsdaine
-- Gen. with
rev. 7542
on Sat Aug 11 2012 by doxygen 1.7.6.1 -- © 2010 by SimuNova UG.