Logo MTL4

math::VectorSpace< Vector, Scalar > Struct Template Reference
[Concepts]

Concept VectorSpace. More...

#include <vector_concepts.hpp>

Inherits AdditiveAbelianGroup<Vector>.

List of all members.

Public Member Functions

axiom Distributivity (Vector v, Vector w, Scalar a, Scalar b)
 Invariant: Distributivity of scalars and vectors from left and from right.


Detailed Description

template<typename Vector, typename Scalar = typename Vector::value_type>
struct math::VectorSpace< Vector, Scalar >

Concept VectorSpace.

Parameters:
Vector The the type of a vector or a collection
Scalar The scalar over which the vector field is defined
Requires:
  • Field < Scalar >;
  • Multiplicable <Scalar, Vector>;
  • MultiplicableWithAssign <Vector, Scalar>;
  • DivisibleWithAssign <Vector, Scalar>;
  • std::Assignable <Vector, Multiplicable<Scalar, Vector>::result_type>;
  • std::Assignable <Vector, Multiplicable<Vector, Scalar>::result_type>;
  • std::Assignable <Vector, Divisible<Vector, Scalar>::result_type>;

Member Function Documentation

template<typename Vector, typename Scalar = typename Vector::value_type>
axiom math::VectorSpace< Vector, Scalar >::Distributivity ( Vector  v,
Vector  w,
Scalar  a,
Scalar  b 
) [inline]

Invariant: Distributivity of scalars and vectors from left and from right.

a * (v + w) == a * v + a * w; // Scalar from left

Vector from right: (a + b) * v == a * v + b * v;

Scalar from right: (v + w) * a == v * a + w * a;

Vector from left: v * (a + b) == v * a + v * b;


The documentation for this struct was generated from the following file:


math::VectorSpace< Vector, Scalar > Struct Template Reference -- MTL 4 -- Peter Gottschling and Andrew Lumsdaine -- Generated on 24 Aug 2009 by Doxygen 1.5.9 -- Copyright 2008-09 by TU Dresden and the Trustees of Indiana University.