[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
Algebraic Concepts |
The algebraic concepts describe requirements for algebraic types, that is for types that support arithmetic operations. The built-in types are concepts of AlgebraicField and DivisionAlgebra.
A model of Algebraic Ring implements Assignable
, Default Constructible
, Equality Comparable
and Strict Weakly Comparable
as defined in the C++ standard (cf. the Standard Template Library documentation).
A model of Algebraic Ring implements addition, subtraction and unary negation. The associated NumericTraits define a 'zero' element, the type of the result of addition and subtraction, and a type conversion function. Addition must be commutative.
If mixed-type addition and subtraction are supported, PromoteTraits define the result type:
A model of Algebraic Ring implements multiplication. The associated NumericTraits define a 'one' element, the type of the result of multiplication, and a type conversion function.
A model of Algebraic Field implements AlgebraicRing as defined above.
A model of Algebraic Field implements division. Division is undefined if and only if the right operand is 'zero'.
A model of Linear Space implements Assignable
, Default Constructible
and Equality Comparable
as defined in the C++ standard (cf. the Standard Template Library documentation).
A model of Algebraic Ring implements addition, subtraction and unary negation. The associated NumericTraits define a 'zero' element, the type of the result of addition and subtraction, and a type conversion function. Addition must be commutative. (This part of the requirements is identical to AlgebraicRing above.)
If mixed-type addition and subtraction are supported, PromoteTraits define the result type:
A model of Algebraic Ring implements multiplication and division with 'double'. (Note that the outer product could be defined with an arbitrary model of AlgebraicField. For simplicity, VIGRA restricts this to only 'double'.) The associated NumericTraits define the type of the results, and a type conversion function.
A model of Linear Algebra implements LinearSpace and AlgebraicRing as defined above.
A model of Division Algebra implements LinearSpace and AlgebraicField as defined above.
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|