MultiplicativeGroup concept
Description
An multiplicative group is a group with the multiplication as operator.
For an multiplicative group
- the identity element is denoted as '1',
- the inverse element of a is denoted as '1/a'.
Refinement of
MulitplicativeMonoid and
Group.
Notation
S |
Type of set |
A |
type of a set convertible to S |
B |
type of a set convertible to S |
a |
Object of type A |
b |
Object of type B |
s |
Object of type S |
1 |
Identity element |
Definitions
Valid expressions
In addition to those defined by
MulitplicativeMagma and
Group
Name |
Expression |
Return type |
Division |
a / b |
convertible to S |
Division assignment |
s /= b |
S |
Inverse |
1/a |
convertible to S |
Expression semantics
Name |
Expression |
Precondition |
Semantics |
Postcondition |
Division |
a / b |
|
equivalent to a * (1/b) |
|
Division assignment |
s /= b |
|
equivalent to s *= 1/b |
|
Inverse |
1/a |
|
Equivalent to 1/a |
|
Complexity guarantees
Invariants
Inherited from Group.
Models
Notes
- If the type S models MultiplicativeGroup then the modul {S,
glas::mult_functor<S,S>} models
Group.
- From the mathematical prospective MultiplicativeGroup could be defined
without the binary operator a/=b,
which does not add new semantic.
In order to ease the programming with concepts we require that all models
of MultiplicativeGroup provide this operator and encourage everybody who introduces new
types to add this operator consistently.