release/4.3a0
Mike Bosse 2014-12-04 13:18:34 +01:00
parent 978c17ceb6
commit eda6bf5ffe
1 changed files with 4 additions and 4 deletions

View File

@ -80,24 +80,24 @@ class GroupConcept {
Group pq = compose(p, q); Group pq = compose(p, q);
Group d = between(p, q); Group d = between(p, q);
bool test = equal(p, q); bool test = equal(p, q);
operator_usage(p, q, traits::group_flavor<Group>::tag); bool test2 = operator_usage(p, q, traits::group_flavor<Group>);
} }
bool check_invariants(const Group& a, const Group& b) { bool check_invariants(const Group& a, const Group& b) {
return (equal(compose(a, inverse(a)), identity)) return (equal(compose(a, inverse(a)), identity))
&& (equal(between(a, b), compose(inverse(a), b))) && (equal(between(a, b), compose(inverse(a), b)))
&& (equal(compose(a, between(a, b)), b)) && (equal(compose(a, between(a, b)), b))
&& operator_usage(a, b, traits::group_flavor<Group>::tag) && operator_usage(a, b, traits::group_flavor<Group>)
} }
private: private:
Group p,q; Group p,q;
bool operator_usage(const Group& a, const Group& b, traits::multiplicative_group_tag) { bool operator_usage(const Group& a, const Group& b, const traits::multiplicative_group_tag&) {
return equals(compose(a, b), a*b); return equals(compose(a, b), a*b);
} }
bool operator_usage(const Group& a, const Group& b, traits::additive_group_tag) { bool operator_usage(const Group& a, const Group& b, const traits::additive_group_tag&) {
return equals(compose(a, b), a+b); return equals(compose(a, b), a+b);
} }