CompositionMapping( map1.. )
CompositionMapping
returns the composition of the mappings map1,
map2, etc. where the range of each mapping must be a subset of the
source of the previous mapping. The mappings need not be single valued
mappings, i.e., multi valued mappings are allowed.
The composition of map1 and map2 is the mapping map that maps each
element elm of the source of map2 to Images( map1, Images( map2,
elm ) )
. If map1 and map2 are single valued mappings this can
also be expressed as map2 * map1
(see Operations for Mappings).
Note the reversed operands.
gap> g := Group( (1,2,3,4), (2,4), (5,6,7) );; g.name := "g";; gap> p4 := MappingByFunction( g, g, x -> x^4 ); MappingByFunction( g, g, function ( x ) return x ^ 4; end ) gap> p5 := MappingByFunction( g, g, x -> x^5 ); MappingByFunction( g, g, function ( x ) return x ^ 5; end ) gap> p20 := CompositionMapping( p4, p5 ); CompositionMapping( MappingByFunction( g, g, function ( x ) return x ^ 4; end ), MappingByFunction( g, g, function ( x ) return x ^ 5; end ) ) gap> (2,4)(5,6,7) ^ p20; (5,7,6)
CompositionMapping
calls
map2.operations.CompositionMapping( map1, map2 )
and returns this value.
The default function called this way is MappingOps.CompositionMapping
,
which constructs a new mapping com. This new mapping remembers map1
and map2 as its factors in com.map1
and com.map2
and delegates
everything to them. For example to compute Images( com, elm )
,
com.operations.ImagesElm
calls Images( com.map1, Images(
com.map2, elm ) )
. Look in the index under CompositionMapping to
see for which mappings this function is overlaid.
GAP 3.4.4