[ VIGRA Homepage | Class Index | Function Index | File Index | 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.
Assignable, Default Constructible, Equality Comparable and Strict Weakly Comparable as defined in the C++ standard (cf. the Standard Template Library documentation).
ModelOfAlgebraicRing a, b;
NumericTraits<ModelOfAlgebraicRing>::Promote c;
ModelOfAlgebraicRing zero = NumericTraits<ModelOfAlgebraicRing>::zero();
b += a;
b -= a;
b = -a;
c = a + b;
c = a - b;
c = a;
a = NumericTraits<ModelOfAlgebraicRing>::fromPromote(c);
assert(a + zero == a);
assert(a + b == b + a);
assert(a - b == a + (-b));
ModelOfAlgebraicRing1 a;
ModelOfAlgebraicRing2 b;
PromoteTraits<ModelOfAlgebraicRing1, ModelOfAlgebraicRing2>::Promote c;
c = a + b;
ModelOfAlgebraicRing a, b;
NumericTraits<ModelOfAlgebraicRing>::RealPromote c;
ModelOfAlgebraicRing one = NumericTraits<ModelOfAlgebraicRing>::one();
b *= a;
c = a * b;
c = a;
a = NumericTraits<ModelOfAlgebraicRing>::fromRealPromote(c);
assert(a * one == a);
ModelOfAlgebraicField a, b;
typename NumericTraits<ModelOfAlgebraicField>::RealPromote c;
ModelOfAlgebraicField zero = NumericTraits<ModelOfAlgebraicField>::zero();
if(a != zero) b /= a;
if(a != zero) c = b / a;
Assignable, Default Constructible and Equality Comparable as defined in the C++ standard (cf. the Standard Template Library documentation).
ModelOfAlgebraicRing a, b;
NumericTraits<ModelOfAlgebraicRing>::Promote c;
ModelOfAlgebraicRing zero = NumericTraits<ModelOfAlgebraicRing>::zero();
b += a;
b -= a;
b = -a;
c = a + b;
c = a - b;
c = a;
a = NumericTraits<ModelOfAlgebraicRing>::fromPromote(c);
assert(a + zero == a);
assert(a + b == b + a);
assert(a - b == a + (-b));
ModelOfAlgebraicRing1 a;
ModelOfAlgebraicRing2 b;
PromoteTraits<ModelOfAlgebraicRing1, ModelOfAlgebraicRing2>::Promote c;
c = a + b;
ModelOfAlgebraicRing a;
double f;
NumericTraits<ModelOfAlgebraicRing>::RealPromote c;
a *= f;
c = a * f;
c = f * a;
if(f != 0.0) a /= f;
if(f != 0.0) c = a / f;
c = a;
a = NumericTraits<ModelOfAlgebraicRing>::fromRealPromote(c);
|
© Ullrich Köthe (koethe@informatik.uni-hamburg.de) |
html generated using doxygen and Python
|