Fingerprint ID: | 0x494d5448 |
---|

New in version 0.5-rc2.

This fingerprint, from RC/Funge-98, implements yet another mathematical functions over integers. It provides the following commands:

`A`:*a*_{1}...*a*_{n}*n*— (Σ*a*_{i}÷*n*)- Calculates an average of
*n*items (possibly including implicit zeroes under the bottom) from the stack. Reflects if*n*is negative, and pushes zero if*n*is zero. `B`:*x*—*abs(x)*- Calculates the absolute value of
*x*. `C`:*x*—*(1000×x)*- Multiplies
*x*by 1000. `D`:*x*—*(x-sign(x))*- Decreases the absolute value of
*x*if*x*is nonzero, or do nothing if*x*is zero. In principle it is equal to*x*minus the sign function (see`G`command) of*x*. `E`:*x*—*(10000×x)*- Multiplies
*x*by 10000. `F`:*n*—*n!*- Calculates the factorial of
*n*. Reflects if*n*is negative. Strangely enough, it pushes zero (not 1) if*n*is zero. PyFunge retains this behavior for compatibility with RC/Funge-98. `G`:*x*—*sign(x)*- Pushes the sign function of
*x*: -1 if*x*is negative, +1 if*x*is positive, and 0 if*x*is zero. `H`:*x*—*(100×x)*- Multiplies
*x*by 100. `I`:*x*—*(x+sign(x))*- Increases the absolute value of
*x*if*x*is nonzero, or do nothing if*x*is zero. In principle it is equal to*x*plus the sign function (see`G`command) of*x*. `L`:*x**c*— (*x*×2^{c})- Shift
*x*left by*c*bits, or right by -*c*bits if*c*is negative. No-op if*c*is zero. `N`:*a*_{1}...*a*_{n}*n*— min{*a*_{i}}- Calculates a minimum of
*n*items (possibly including implicit zeroes under the bottom) from the stack. Reflects if*n*is negative or zero. `R`:*x**c*— (*x*÷2^{c})- Shift
*x*right by*c*bits, or left by -*c*bits if*c*is negative. No-op if*c*is zero. `S`:*a*_{1}...*a*_{n}*n*— (Σ*a*_{i})- Calculates a sum of
*n*items (possibly including implicit zeroes under the bottom) from the stack. Reflects if*n*is negative, and pushes zero if*n*is zero. `T`:*x*—*(10×x)*- Multiplies
*x*by 10. `U`:*x*—- Prints
*x*as an unsigned integer. Note that PyFunge prints only lower 32 bits of*x*since this command requires the size of integer to be finite. `X`:*a*_{1}...*a*_{n}*n*— max{*a*_{i}}- Calculates a maximum of
*n*items (possibly including implicit zeroes under the bottom) from the stack. Reflects if*n*is negative or zero. `Z`:*x*—*-x*- Negates the sign of
*x*.