HPL_lmul(3)

πŸ“¦ version 2.2, in fedora 43, fedora 44

πŸ’– NAME πŸ’–

HPL_lmul β€” bestie, this one multiplies 2 long positive integers. that's it. that's the whole job. ✨


πŸŽ€ SYNOPSIS πŸŽ€

#include "hpl.h"

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

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so HPL_lmul multiplies without carry two long positive integers K and J, and drops the result right into I. no cap, no carry. πŸ’…

the long integers I, J, K are encoded on 64 bits using an array of 2 integers. here's the tea on how that layout works:

  • the 32-lower bits live in the first entry of each array
  • the 32-higher bits live in the second entry of each array

and because efficiency is that girl, the intrinsic modulo function is inlined. periodt. πŸ‘‘


🌸 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. that's the glow-up moment right there ✨

🌈 SEE ALSO 🌈

HPL_ladd (3), HPL_setran (3), HPL_xjumpm (3), HPL_jumpit (3), HPL_rand (3).


HPL 2.2 Β· February 24, 2016 β€” mwah, that's the version and date bestie, this page is officially signed, sealed and slayed πŸ’‹ πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«ΆπŸ‘‘πŸŒˆβ­πŸ’œ

πŸ“¦ where this page comes from