HPL_pdlamch(3)

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

πŸ’– HPL_pdlamch πŸ’–

okay bestie, so this is a page from the HPL Library Functions manual β€” like, HPL_pdlamch(3) β€” and honestly? it's giving machine whisperer energy. it's the girl who asks your computer what numbers it can actually handle. no cap. ✨


🌸 NAME 🌸

HPL_pdlamch β€” determines machine-specific arithmetic constants. she's the vibe check for your floating point, fr fr πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

#include "hpl.h"

double HPL_pdlamch( MPI_Comm COMM, const HPL_T_MACH CMACH );

πŸ¦‹ DESCRIPTION πŸ¦‹

HPL_pdlamch determines machine-specific arithmetic constants. basically she goes up to your hardware and is like "so what's tea, what are your limits" and your hardware spills everything. πŸ˜­πŸ’–

here's the whole roster of constants she can hand you:

  • the relative machine precision (eps)
  • the safe minimum (sfmin) β€” the way it's defined is that 1/sfmin does not overflow πŸ‘‘
  • the base of the machine (base)
  • the precision (prec)
  • the number of (base) digits in the mantissa (t)
  • whether rounding occurs in addition (rnd = 1.0 and 0.0 otherwise)
  • the minimum exponent before (gradual) underflow (emin)
  • the underflow threshold (rmin) β€” that's base**(emin-1)
  • the largest exponent before overflow (emax)
  • the overflow threshold (rmax) β€” that's (base**emax)*(1-eps)

like, she's the main character of "what is this machine even capable of". iconic behavior. πŸ”₯


✨ ARGUMENTS ✨

  • COMM (global/local input) MPI_Comm β€” the MPI communicator identifying the process collection. yes bestie, this is the group chat. the process collection is literally a group chat. 🫢
  • CMACH (global input) const HPL_T_MACH β€” specifies the value to be returned by HPL_pdlamch. pick your fighter:
   = HPL_MACH_EPS,   HPL_pdlamch := eps (default)
   = HPL_MACH_SFMIN, HPL_pdlamch := sfmin
   = HPL_MACH_BASE,  HPL_pdlamch := base
   = HPL_MACH_PREC,  HPL_pdlamch := eps*base
   = HPL_MACH_MLEN,  HPL_pdlamch := t
   = HPL_MACH_RND,   HPL_pdlamch := rnd
   = HPL_MACH_EMIN,  HPL_pdlamch := emin
   = HPL_MACH_RMIN,  HPL_pdlamch := rmin
   = HPL_MACH_EMAX,  HPL_pdlamch := emax
   = HPL_MACH_RMAX,  HPL_pdlamch := rmax

where πŸ‘‡

   eps   = relative machine precision,
   sfmin = safe minimum,
   base  = base of the machine,
   prec  = eps*base,
   t     = number of digits in the mantissa,
   rnd   = 1.0 if rounding occurs in addition,
   emin  = minimum exponent before underflow,
   rmin  = underflow threshold,
   emax  = largest exponent before overflow,
   rmax  = overflow threshold.
πŸ’‘ and yeah, HPL_MACH_EPS is the default β€” if you don't say anything, she just gives you eps. lowkey the most popular order at the drive-thru. πŸ“

🌈 sign-off 🌈

and that's the whole page bestie!! this one's from HPL 2.2, dated February 24, 2016 β€” so it's vintage vintage, but she ate and left no crumbs. go ask your machine what it's made of. mwah πŸ’œβœ¨πŸ§š

πŸ“¦ where this page comes from