Sequoia
|
Traits and concepts for basic elements of abstract algebra. More...
Concepts | |
concept | sequoia::maths::weak_commutative_ring |
concept representing reasonable approximations to a commutative ring. | |
concept | sequoia::maths::weak_field |
concept representing reasonable approximations to a field. | |
Classes | |
struct | sequoia::maths::weakly_abelian_group_under_addition< T > |
Trait for specifying whether a type behaves (appoximately) as an abelian group under addition. More... | |
struct | sequoia::maths::weakly_abelian_group_under_multiplication< T > |
Trait for specifying whether a type behaves (appoximately) as an abelian group under multiplication. More... | |
struct | sequoia::maths::multiplication_weakly_distributive_over_addition< T > |
Trait for specifying whether a type exhibits multiplication that (approximately) distributes over addition. More... | |
Traits and concepts for basic elements of abstract algebra.
A fundamental problem of attempting this classification on a computer is the difference between a mathematical structure and an approximate representation of that structure. ints model the integers, but not exactly since there is a maximum representable value. Similarly, floating-point numbers model the reals but only in an approximate sense. To signify the fact that neither integer nor floating-point addition exactly models an abelian group, the term 'weak' is used. Note, however, that addition of unsigned integral types does precisely model an abelian group and so 'weak' is a minimum requirement.
Entertaingly, the only fundamental type in C++ which exacly models a field is bool.