`z1` + `z2`

`z1`
- `z2`

`z1` * `z2`

`z1` / `z2`

The operators `+`

, `-`

, `*`

and `/`

evaluate to the sum, difference, product, and quotient of the two finite
field elements `z1` and `z2`, which must lie in fields of
the same characteristic. For the quotient `/`

`z2` must
of course be nonzero. The result must of course lie in a finite field of size
less than or equal to *2^(16)*, otherwise an error is signalled.

Either operand may also be an integer `i`. If `i` is zero
it is taken as the zero in the finite field, i.e.,

,
where `F`.zero`F` is a field record for the finite field in which the other
operand lies. If `i` is positive, it is taken as `i`-fold
sum

. If
`F`.one+`F`.one+..+`F`.one`i` is negative it is taken as the additive inverse of `-`

.
`i`

gap> Z(8) + Z(8)^4; Z(2^3)^2 gap> Z(8) - 1; Z(2^3)^3 gap> Z(8) * Z(8)^6; Z(2)^0 gap> Z(8) / Z(8)^6; Z(2^3)^2 gap> -Z(9); Z(3^2)^5

`z` ^ `i`

The powering operator `^`

returns the `i`-th power of the
element in a finite field `z`. `i` must be an integer. If
the exponent `i` is zero,

is
defined as the one in the finite field, even if `z`^`i``z` is zero; if
`i` is positive,

is defined
as the `z`^`i``i`-fold product

;
finally, if `z`*`z`*..*`z``i` is negative,

is defined as `z`^`i``(1/`

. In this case `z`)^-`i``z`
must of course be nonzero.

gap> Z(4)^2; Z(2^2)^2 gap> Z(4)^3; Z(2)^0 # is in fact 1 gap> (0*Z(4))^0; Z(2)^0