Name

HPL_lmul multiplies 2 long positive integers.

Synopsis

#include "hpl.h"

void HPL_lmul( int * K, int * J, int * I );

Description

HPL_lmul multiplies without carry two long positive integers K and J and put the result into I. The long integers I, J, K are encoded on 31 bits using an array of 2 integers. The 16-lower bits are stored in the first entry of each array, the 15-higher bits in the second entry of each array. For efficiency purposes, the intrisic modulo function is inlined.

Arguments

K       (local input)                 int *
        On entry, K is an integer array of dimension 2 containing the
        encoded long integer K.
J       (local input)                 int *
        On entry, J is an integer array of dimension 2 containing the
        encoded long integer J.
I       (local output)                int *
        On entry, I is an integer array of dimension 2. On exit, this
        array contains the encoded long integer result.

See Also

HPL_ladd, HPL_setran, HPL_xjumpm, HPL_jumpit, HPL_rand.