Понятие<Group>представляет<Monoid>, где все объекты имеют обратную w.r.t. бинарную операцию<Monoid>.
Группапредставляет собой алгебраическую структуру, построенную поверх<Monoid>, которая добавляет способность инвертировать действие бинарной операции<Monoid>на любой элемент множества. В частности,<Group>является<Monoid><(S, +)>таким, что каждый элемент<s>в<S>имеет обратный (скажем,<s'>), который является таким, что
s + s' == s' + s == identity of the Monoid
Есть много примеров<Group>с, одним из которых была бы добавка<Monoid>на целых числах, где обратным любому целому числу<n>является целое число<-n>. Используемые здесь названия методов относятся именно к этой модели.
Minimal complete definitions
minus Когдаminusопределен, методnegateпо умолчанию устанавливается
Тип данных<T>является арифметическим, если<std::is_arithmetic<T>::value>является истинным. Для небулевого арифметического типа данных<T>модель<Group>автоматически определяется установкой
The rationale for not providing a Group model for bool is the same as for not providing a Monoid model.
Structure-preserving functions
Пусть<A>и<B>будет два<Group>. Функция<f : A -> B>называется функцией. Групповой морфизм, если он сохраняет групповую структуру между<A>и<B>. Строго, для всех объектов<x, y>типа данных<A>,
Subtract two elements of a group.Specifically, this performs the Monoid operation on the first argument and on the inverse of the second argument, thus being equivalent to: More...
Вычтите два элемента из группы. В частности, это выполняет операцию<Monoid>на первом аргументе и на обратном втором аргументе, таким образом, будучи эквивалентным:
Метод<minus>«перегружен» для обработки различных типов данных с определенными свойствами. В частности,<minus>определяется дляразличныхтипов данных<A>и<B>, так что
AиBимеют общий тип данныхC, определяемый метафункциейcommon.
A,BиC- всеGroup, если принимать индивидуально
to<C> : A -> Bиto<C> : B -> CявляютсяGroupвстраиванием, как определеноis_embeddingметафункцией.
Определение<minus>для типов данных, удовлетворяющих вышеуказанным свойствам, получено путем установки
Статья Boost.Hana: Group раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.