# 8.23 RepresentativeOperation

`RepresentativeOperation( G, d, e )`
`RepresentativeOperation( G, d, e, operation )`

`RepresentativeOperation` returns a representative of the point e in the orbit of the point d under the group G. If d = e then `RepresentativeOperation` returns `G.identity`, otherwise it is not specified which group element `RepresentativeOperation` will return if there are several that map d to e. If e is not in the orbit of d under G, `RepresentativeOperation` returns `false`.

An element g of G is called a representative for the point e in the orbit of d under G if g maps d to e, i.e., d^g = e. Note that the set of such representatives that map d to e forms a right coset of the stabilizer of d in G (see Stabilizer).

`RepresentativeOperation` accepts a function operation of two arguments d and g as optional third argument, which specifies how the elements of G operate (see Other Operations).

```    gap> g := Group( (1,2,3)(6,7), (3,4,5)(7,8) );;
gap> RepresentativeOperation( g, 1, 5 );
(1,5,4,3,2)(6,8,7)
gap> RepresentativeOperation( g, 1, 6 );
false
gap> RepresentativeOperation( g, [1,2,3], [3,4,5], OnSets );
(1,3,5,2,4)
gap> RepresentativeOperation( g, [1,2,3,4], [3,4,5,2], OnTuples );
false ```

`RepresentativeOperation` calls
`G.operations.RepresentativeOperation( G, d, e, operation )`
and returns the value. Note that the fourth argument is not optional for functions called this way.

The default function called this way is `GroupOper.RepresentativeOperation`, which starts a normal orbit calculation to compute the orbit of d under G, and remembers for each point how it was obtained, i.e., which generator of G took which orbit point to this new point. When the point e appears this information can be traced back to write down the representative of e as a word in the generators. Special categories of groups overlay this default function with more efficient functions.

GAP 3.4.4
April 1997