# 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.