GETABLEXPRMAX(3)

πŸ“¦ version 5.1.1-unstable-2025-02, in nixos 26.05, nixpkgs unstable

πŸ’… GETABLEXPRMAX(3) β€” the ABL FUNCTIONS girlies ✨

okay so bestie, welcome to the getablexprmax page β€” it lives in section 3 of the manual (that's the ABL FUNCTIONS section, iykyk), and it's literally about applying a function to all the operands πŸŽ€


🌸 NAME 🌸

getablexprmax β€” applies a function to all operands. that's it, that's the vibe πŸ’…


🧚 ORIGIN 🧚

ok so this software belongs to the ALLIANCE CAD SYSTEM, developed by the ASIM team at the LIP6 laboratory of UniversitΓ© Pierre et Marie CURIE, in Paris, France πŸ₯–βœ¨ (yes the actual university name has a little encoding hiccup in the original, we're not gonna pretend otherwise, that's just how it is πŸ’€)

like, reach out, they're literally waiting 🫢


✨ SYNOPSIS ✨

#include "abl101.h"
chain_list βˆ—getablexprmax( Function, Expr )
  int       (βˆ—Function)();
  chain_list βˆ—Expr;

no cap, that's the whole signature. copy it exactly, she's sensitive πŸ’–


πŸŽ€ PARAMETERS πŸŽ€

  • Function β€” the cost function. yes, it's a function pointer, she's fancy like that πŸ‘‘
  • Expr β€” the expression to scan. go through it, bestie πŸ”

πŸ¦‹ DESCRIPTION πŸ¦‹

so getablexprmax applies the cost function Function to all the operands of Expr. every single one. the way that it just goes through them all and scores them? iconic 🌈


⭐ RETURN VALUE ⭐

getablexprmax returns the operand for which Function gives the maximum cost πŸ† (the original page has a little typo and says "unction" β€” we love her anyway, she's doing her best πŸ’€).

⚠️ lowkey important: the expression pointer returned MUSTN'T be modified after the call to this function. like, do not touch. periodt πŸ™ˆ

πŸ’€ ERRORS πŸ’€

getablexprmax error ... β€” yeah that's literally all the page says, bestie. we're not gonna invent lore that isn't there 😭


πŸ”₯ EXAMPLE πŸ”₯

#include "abl101.h"
    int MapFunction( MapExpr )
      chain_list βˆ—MapExpr;
    {
      return( getabldepthexpr( MapExpr ) );
    }
    ...
    chain_list βˆ—Expr;
    chain_list βˆ—Expr1;
    Expr = createablbinexpr( ABL_AND,
                             createablatom( "a" ),
                             createablatom( "b" ) );
   Expr1 = getablexprmax( MapFunction, Expr );

see? you build a little AND expression out of "a" and "b", then you hit it with MapFunction via getablexprmax and get Expr1 back. slay πŸ’…


πŸ‘‘ SEE ALSO πŸ‘‘

go read that one next, it's giving main character energy 🌟


πŸ“ BUG REPORT πŸ“

this tool is under development at the ASIM department of the LIP6 laboratory πŸ› οΈ and they literally need your feedback to improve documentation and tools. so like, if something's weird, tell them, they're asking!! fr fr πŸ™


okay that's the whole page, hope it ate πŸ’–

sign-off time: this beauty came from ASIM/LIP6 and she's dated October 1, 1997 β€” a vintage icon, honestly, we stan an old queen πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from