# Name

HPL_xjumpm Compute constants to jump in the random sequence.

# Synopsis

`#include "hpl.h"`
`void` `HPL_xjumpm(` `const int` `JUMPM`, `int *` `MULT`, `int *` `IADD`, `int *` `IRANN`, `int *` `IRANM`, `int *` `IAM`, `int *` `ICM` `);`

# Description

HPL_xjumpm computes the constants A and C to jump JUMPM numbers in the random sequence: X(n+JUMPM) = A*X(n)+C. The constants encoded in MULT and IADD specify how to jump from one entry in the sequence to the next.

# Arguments

    JUMPM   (local input)                 const int
            On entry,  JUMPM  specifies  the  number  of entries  in  the
            sequence to jump over. When JUMPM is less or equal than zero,
            A and C are not computed, IRANM is set to IRANN corresponding
            to a jump of size zero.

    MULT    (local input)                 int *
            On entry, MULT is an array of dimension 2,  that contains the
            16-lower  and 15-higher bits of the constant  a  to jump from
            X(n) to X(n+1) = a*X(n) + c in the random sequence.

    IADD    (local input)                 int *
            On entry, IADD is an array of dimension 2,  that contains the
            16-lower  and 15-higher bits of the constant  c  to jump from
            X(n) to X(n+1) = a*X(n) + c in the random sequence.

    IRANN   (local input)                 int *
            On entry, IRANN is an array of dimension 2. that contains the
            16-lower and 15-higher bits of the encoding of X(n).

    IRANM   (local output)                int *
            On entry,  IRANM  is an array of dimension 2.   On exit, this
            array  contains respectively  the 16-lower and 15-higher bits
            of the encoding of X(n+JUMPM).

    IAM     (local output)                int *
            On entry, IAM is an array of dimension 2. On exit, when JUMPM
            is  greater  than  zero,  this  array  contains  the  encoded
            constant  A  to jump from  X(n) to  X(n+JUMPM)  in the random
            sequence. IAM(0:1)  contains  respectively  the  16-lower and
            15-higher  bits  of this constant  A. When  JUMPM  is less or
            equal than zero, this array is not referenced.

    ICM     (local output)                int *
            On entry, ICM is an array of dimension 2. On exit, when JUMPM
            is  greater  than  zero,  this  array  contains  the  encoded
            constant  C  to jump from  X(n)  to  X(n+JUMPM) in the random
            sequence. ICM(0:1)  contains  respectively  the  16-lower and
            15-higher  bits  of this constant  C. When  JUMPM  is less or
            equal than zero, this array is not referenced.

# See Also

HPL_ladd, HPL_lmul, HPL_setran, HPL_jumpit, HPL_rand.