We discuss three concepts of inversive methods, inversive congruential generators, explicit-inversive congruential generators, and combinations of these algorithms.
Inversive methods may be defined even for composite moduli. In view of their outstanding performance, we shall only consider prime moduli. Elaborate theoretical analysis has shown that the composite case is of little practical interest. We refer the reader to Niederreiter (1995a) for a comprehensive survey of these results.
For a given prime number p, and for
, let
if c=0 and
if
. In other words,
equals the number
modulo p.
Inversive congruential generators (``ICG'') are due to Eichenauer and Lehn (1986). We have to choose the modulus p, a multiplier a, an additive term b, and an initial value
. Then the congruence
![]()
defines an inversive congruential generator. We denote this generator by
![]()
It produces a sequence
in the set
Pseudorandom numbers
in [0,1[ are obtained by the normalization
A prominent feature of the ICG with prime modulus is the absence of any lattice structure, in sharp contrast to linear congruential generators (``LCG''). In the following scatter plot, all possible points (``nonoverlapping pairs'' of consecutive pseudorandom number s)
,
, in a region near the point (0.5, 0.5) are shown.

Figure 1: ICG(
, 1288490188, 1, 0)
The proper choice of the parameters a and b will be discussed in Section 3. An important feature of the ICG with respect to implementation is the ``mother-son'' principle, see Section 5.
Roughly speaking, the EICG is the ``easy-going brother'' of the ICG. It is due to Eichenauer-Herrmann (1993a). As we shall see, the EICG is easier to handle in practice, for example when producing independent substreams. The cost is a slightly smaller maximal sample size, as our empirical tests have shown, see Figure 6 in Section 4.
We choose a prime number p, a multiplier
,
, an additive term
, and an initial value
in
. Then
![]()
defines a sequence of pseudorandom number s in
As before, we put
:=
,
, to obtain pseudorandom number s in [0,1[. We shall denote this generator by
![]()
In the definition of EICG(
), the additive term b is superfluous. It is easy to see that the two generators EICG(
) and EICG(
), with
![]()
produce identical output. Hence, in most of our tests, we shall put b=0.
Eichenauer-Herrmann (1993b, 1994a) has introduced a simple technique to combine inversive generators, the compound approach.
Let
be distinct prime numbers, each
. For each index j,
, let
be a sequence of elements of
that is purely periodic with period length
. In other words,
![]()
Let
denote the related sequence of pseudorandom number s in [0,1[, where
![]()
A sequence
of compound pseudorandom number s in [0,1[ is defined by the congruence
![]()
It is elementary to see that the period of the sequence
equals M:=
We shall write cICG for a compound ICG and cEICG for a compound EICG.
The compound approach allows to combine ICG and EICG, provided they have full period. This method has important advantages: we may obtain very long periods easily, modular operations may be carried out with relatively small moduli, increasing the effectiveness of our computations, and the good correlation structure of the ICG and EICG is preserved. For the latter statement, see Section 3.
We present a scatter plot of a combined ICG, c(ICG(1031,55,1,0), ICG(1033,103,1,0), ICG(2027, 66,1,0)). All possible points
,
, have been computed. The period of this generator is M= 2158801621.

Figure 2: A Combined ICG with Three Components