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.