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