free42 Simple Math Functions
| Author: | Mitch Richling |
| Updated: | 2025-10-08 14:52:42 |
Copyright 2025 Mitch Richling. All rights reserved.
Table of Contents
1. Metadata
- Connonical URL for this file: https://richmit.github.io/hp42/sfun.html
- org-mode file source for this file: https://github.com/richmit/hp42/blob/master/src/sfun.org
- 42s code listings in this file: https://github.com/richmit/hp42/blob/master/src_42s/sfun/sfun.hp42s
- GitHub repository: https://github.com/richmit/hp42
2. Introduction
This org-mode file collects together a handful simple mathematical functions that I find useful.
4. Menu Code
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (SFUN) @@@@ DSC: Auto-generated menu program LBL "SFUN" LBL 01 @@@@ Page 1 of menu SFUN CLMENU "L&P" KEY 1 GTO 03 "CPLX" KEY 2 GTO 04 "TRIG" KEY 3 GTO 05 "HYP" KEY 4 GTO 06 "PERC" KEY 5 GTO 07 "INT" KEY 6 GTO 08 KEY 7 GTO 02 KEY 8 GTO 02 KEY 9 GTO 00 MENU STOP GTO 01 LBL 02 @@@@ Page 2 of menu SFUN CLMENU "BINO" KEY 1 GTO 09 "ERR" KEY 2 GTO 10 "MISC" KEY 3 GTO 11 KEY 7 GTO 01 KEY 8 GTO 01 KEY 9 GTO 00 MENU STOP GTO 02 LBL 03 @@@@ Page 1 of menu L&P CLMENU "lnYX" KEY 1 XEQ "lnYX" "ln2" KEY 3 XEQ "ln2" "LN" KEY 4 XEQ 14 "LOG" KEY 5 XEQ 15 KEY 7 GTO 13 KEY 8 GTO 12 KEY 9 GTO 01 MENU STOP GTO 03 LBL 12 @@@@ Page 2 of menu L&P CLMENU "Y↑X" KEY 1 XEQ 16 "2↑X" KEY 3 XEQ 58 "E↑X" KEY 4 XEQ 17 "10↑X" KEY 5 XEQ 18 KEY 7 GTO 03 KEY 8 GTO 13 KEY 9 GTO 01 MENU STOP GTO 12 LBL 13 @@@@ Page 3 of menu L&P CLMENU "Y√X" KEY 1 XEQ "YROOT" "2√X" KEY 3 XEQ 57 "3√X" KEY 4 XEQ 56 "5√X" KEY 5 XEQ 55 "7√X" KEY 6 XEQ 54 KEY 7 GTO 12 KEY 8 GTO 03 KEY 9 GTO 01 MENU STOP GTO 13 LBL 04 @@@@ Page 1 of menu CPLX CLMENU "RPART" KEY 1 XEQ "RPART" "IPART" KEY 2 XEQ "IPART" "CONJ" KEY 3 XEQ "CONJ" "CABS" KEY 4 XEQ "CABS" "CARG" KEY 5 XEQ "CARG" KEY 9 GTO 01 MENU STOP GTO 04 LBL 05 @@@@ Page 1 of menu TRIG CLMENU "SIN" KEY 1 XEQ 21 "COS" KEY 2 XEQ 22 "TAN" KEY 3 XEQ 23 "ASIN" KEY 4 XEQ 24 "ACOS" KEY 5 XEQ 25 "ATAN" KEY 6 XEQ 26 KEY 7 GTO 20 KEY 8 GTO 19 KEY 9 GTO 01 MENU STOP GTO 05 LBL 19 @@@@ Page 2 of menu TRIG CLMENU "CSC" KEY 1 XEQ "CSC" "SEC" KEY 2 XEQ "SEC" "COT" KEY 3 XEQ "COT" "ACSC" KEY 4 XEQ "ACSC" "ASEC" KEY 5 XEQ "ASEC" "ACOT" KEY 6 XEQ "ACOT" KEY 7 GTO 05 KEY 8 GTO 20 KEY 9 GTO 01 MENU STOP GTO 19 LBL 20 @@@@ Page 3 of menu TRIG CLMENU "TAN2" KEY 1 XEQ "TAN2" "HYPOT" KEY 2 XEQ "HYPOT" "HAV" KEY 3 XEQ "HAV" "AHAV" KEY 4 XEQ "AHAV" KEY 7 GTO 19 KEY 8 GTO 05 KEY 9 GTO 01 MENU STOP GTO 20 LBL 06 @@@@ Page 1 of menu HYP CLMENU "SINH" KEY 1 XEQ 28 "COSH" KEY 2 XEQ 29 "TANH" KEY 3 XEQ 30 "ASINH" KEY 4 XEQ 31 "ACOSH" KEY 5 XEQ 32 "ATANH" KEY 6 XEQ 33 KEY 7 GTO 27 KEY 8 GTO 27 KEY 9 GTO 01 MENU STOP GTO 06 LBL 27 @@@@ Page 2 of menu HYP CLMENU "CSCH" KEY 1 XEQ "CSCH" "SECH" KEY 2 XEQ "SECH" "COTH" KEY 3 XEQ "COTH" "ACSCH" KEY 4 XEQ "ACSCH" "ASECH" KEY 5 XEQ "ASECH" "ACOTH" KEY 6 XEQ "ACOTH" KEY 7 GTO 06 KEY 8 GTO 06 KEY 9 GTO 01 MENU STOP GTO 27 LBL 07 @@@@ Page 1 of menu PERC CLMENU "%T" KEY 1 XEQ "%T" "%CH" KEY 2 XEQ 34 "%" KEY 3 XEQ 35 KEY 9 GTO 01 MENU STOP GTO 07 LBL 08 @@@@ Page 1 of menu INT CLMENU "FLOR" KEY 1 XEQ "FLOOR" "CEIL" KEY 2 XEQ "CEIL" "ROND" KEY 3 XEQ "ROUND" "TRUN" KEY 4 XEQ 37 "FP" KEY 6 XEQ 38 KEY 7 GTO 36 KEY 8 GTO 36 KEY 9 GTO 01 MENU STOP GTO 08 LBL 36 @@@@ Page 2 of menu INT CLMENU "GCD" KEY 1 XEQ "GCD" "LCM" KEY 2 XEQ "LCM" "DIV" KEY 5 XEQ 39 "REM" KEY 6 XEQ 40 KEY 7 GTO 08 KEY 8 GTO 08 KEY 9 GTO 01 MENU STOP GTO 36 LBL 09 @@@@ Page 1 of menu BINO CLMENU "COMB" KEY 1 XEQ 41 "PERM" KEY 2 XEQ 42 "!" KEY 3 XEQ 43 "PSI" KEY 4 XEQ "DIGAMM" "GAM" KEY 5 XEQ 44 "BETA" KEY 6 XEQ "BETA" KEY 9 GTO 02 MENU STOP GTO 09 LBL 10 @@@@ Page 1 of menu ERR CLMENU "ERF" KEY 1 XEQ "ERF" "ERFC" KEY 2 XEQ "ERFC" "NPDF" KEY 4 XEQ "NPDF" "NCDF" KEY 5 XEQ "NCDF" KEY 9 GTO 02 MENU STOP GTO 10 LBL 11 @@@@ Page 1 of menu MISC CLMENU "||" KEY 1 XEQ "||" KEY 9 GTO 02 MENU STOP GTO 11 LBL 00 @@@@ Application Exit EXITALL RTN LBL 14 @@@@ Action for menu key LN LN RTN LBL 15 @@@@ Action for menu key LOG LOG RTN LBL 16 @@@@ Action for menu key Y↑X Y↑X RTN LBL 17 @@@@ Action for menu key E↑X E↑X RTN LBL 18 @@@@ Action for menu key 10↑X 10↑X RTN LBL 21 @@@@ Action for menu key SIN SIN RTN LBL 22 @@@@ Action for menu key COS COS RTN LBL 23 @@@@ Action for menu key TAN TAN RTN LBL 24 @@@@ Action for menu key ASIN ASIN RTN LBL 25 @@@@ Action for menu key ACOS ACOS RTN LBL 26 @@@@ Action for menu key ATAN ATAN RTN LBL 28 @@@@ Action for menu key SINH SINH RTN LBL 29 @@@@ Action for menu key COSH COSH RTN LBL 30 @@@@ Action for menu key TANH TANH RTN LBL 31 @@@@ Action for menu key ASINH ASINH RTN LBL 32 @@@@ Action for menu key ACOSH ACOSH RTN LBL 33 @@@@ Action for menu key ATANH ATANH RTN LBL 34 @@@@ Action for menu key %CH %CH RTN LBL 35 @@@@ Action for menu key % % RTN LBL 37 @@@@ Action for menu key TRUN IP RTN LBL 38 @@@@ Action for menu key FP FP RTN LBL 39 @@@@ Action for menu key DIV BASE÷ RTN LBL 40 @@@@ Action for menu key REM MOD RTN LBL 41 @@@@ Action for menu key COMB COMB RTN LBL 42 @@@@ Action for menu key PERM PERM RTN LBL 43 @@@@ Action for menu key ! N! RTN LBL 44 @@@@ Action for menu key GAM GAMMA RTN @@@@ Free labels start at: 45
5. Functions
5.1. Complex Numbers
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (RPART) @@@@ DSC: Real part @@@@ IN: X: Number or numeric matrix (element-wise) @@@@ OUT: X: rpart(x) @@@@ LBL: 69-72 @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL "RPART" FUNC 11 L4STK ENTER XEQ 89 @@@@ ATYP X=0? RTNERR 4 68 + GTO IND ST X LBL 69 @@@@ Real Number LBL 70 @@@@ Real Matrix R↓ RTN LBL 71 @@@@ Complex Number LBL 72 @@@@ Complex Matrix R↓ XEQ 98 @@@@ C→R&I X<>Y RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (IPART) @@@@ DSC: Imaginary Part @@@@ IN: X: Number or numeric matrix (element-wise) @@@@ OUT: X: ipart(x) @@@@ LBL: 73-76 @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL "IPART" FUNC 11 L4STK ENTER XEQ 89 @@@@ ATYP X=0? RTNERR 4 72 + GTO IND ST X LBL 73 @@@@ Real Number 0 RTN LBL 74 @@@@ Real Matrix R↓ DIM? NEWMAT RTN LBL 75 @@@@ Complex Number LBL 76 @@@@ Complex Matrix R↓ XEQ 98 @@@@ C→R&I RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (CONJ) @@@@ DSC: Complex Conjugate @@@@ IN: X: Number or numeric matrix (element-wise) @@@@ OUT: X: conj(x) @@@@ TST: free42_3.0.2 @@@@ LBL: 77-80 @@@@ BUG: Fails on alpha string matrix @@@@ UPD: 2025-10-07 LBL "CONJ" FUNC 11 L4STK ENTER XEQ 89 @@@@ ATYP X=0? RTNERR 4 76 + GTO IND ST X LBL 77 @@@@ Real Number LBL 78 @@@@ Real Matrix R↓ RTN LBL 79 @@@@ Complex Number LBL 80 @@@@ Complex Matrix R↓ COMPLEX +/- COMPLEX RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (CABS) @@@@ DSC: Magnitude/absolute value @@@@ IN: X: Number or numeric matrix (element-wise) -- built in ABS won't work with a complex matrix @@@@ OUT: X: |x| @@@@ TST: CPXRES free42_3.0 @@@@ LBL: 81-84 @@@@ BUG: Returns 0 for real 0 input @@@@ UPD: 2025-10-07 LBL "CABS" FUNC 11 L4STK ENTER XEQ 89 @@@@ ATYP X=0? RTNERR 4 80 + GTO IND ST X LBL 81 @@@@ Real Number LBL 82 @@@@ Real Matrix R↓ ABS RTN LBL 83 @@@@ Complex Number LBL 84 @@@@ Complex Matrix R↓ XEQ 47 @@@@ C→M&A X<>Y RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (CARG) @@@@ DSC: Complex Argument @@@@ IN: X: Number or numeric matrix (element-wise) @@@@ OUT: X: arg(x) @@@@ TST: CPXRES free42_3.0 @@@@ LBL: 85-88 @@@@ BUG: Returns 0 for real 0 input @@@@ UPD: 2025-10-07 LBL "CARG" FUNC 11 L4STK ENTER XEQ 89 @@@@ ATYP X=0? RTNERR 4 84 + GTO IND ST X LBL 85 @@@@ Real Number 0 RTN LBL 86 @@@@ Real Matrix R↓ DIM? NEWMAT RTN LBL 87 @@@@ Complex Number LBL 88 @@@@ Complex Matrix R↓ XEQ 47 @@@@ C→M&A RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Complex Number -> Real Part & Imaginary Part @@@@ NAM: C→R&I 98 @@@@ IN: X: Complex Number or Complex Matrix @@@@ OUT: Y: Real Part of X @@@@ X: Imaginary Part of X @@@@ LBL: 97 @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL 98 FUNC 12 L4STK ENTER FS? 73 GTO 97 @@@@ RECT MODE COMPLEX RTN LBL 97 @@@@ POLAR MODE RECT COMPLEX POLAR RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Complex Number -> Magnitude & Argument (angle) @@@@ NAM: C→M&A 47 @@@@ IN: X: Complex Number or Complex Matrix @@@@ OUT: Y: Magnitude of X @@@@ X: Complex Argument (angle) of X @@@@ LBL: 99 @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL 47 FUNC 12 L4STK ENTER FS? 73 GTO 99 @@@@ RECT MODE POLAR COMPLEX RECT RTN LBL 99 @@@@ POLAR MODE COMPLEX RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Arithmetic Type @@@@ NAM: ATYP 89 @@@@ IN: X: an object @@@@ OUT: X: 1 if input X was a real number @@@@ 2 if input X was a real matrix @@@@ 3 if input X was a complex number @@@@ 4 if input X was a complex matrix @@@@ 0 if none of the above are true @@@@ TST: free42_3.0.2 @@@@ FAQ: Even on free42<2.5.24 or a real 42s, X, Y, & Z are preserved. T & Last X not so much. @@@@ BUG: A 2 will be returned for a real matrix containing strings @@@@ BUG: In infinite stack mode with an empty stack 2 will be returned as X=0 when we do L4STK @@@@ LBL: 90-97 @@@@ UPD: 2025-10-07 LBL 89 FUNC 11 L4STK MAT? GTO 90 GTO 91 LBL 90 @@@@ Matrix CLA ARCL ST X 67 POSA X>0? GTO 96 GTO 97 LBL 96 @@@@ Complex Matrix 4 RTN LBL 97 @@@@ Real/String Matrix 2 RTN LBL 91 @@@@ Not matrix REAL? GTO 92 GTO 93 LBL 92 @@@@ Real number 1 RTN LBL 93 @@@@ Not matrix or real CPX? GTO 94 GTO 95 LBL 94 @@@@ Complex number 3 RTN LBL 95 @@@@ Not matrix, real, or complex 0 RTN
5.2. Percentages
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (PTOT) @@@@ DSC: Percentage of total (just like hp-12c button) @@@@ IN: Y: Real Number -- Total @@@@ X: Real Number -- Part @@@@ OUT: Y: Y @@@@ X: 100*X/Y @@@@ UPD: 2025-10-07 LBL "%T" FUNC 22 L4STK RCL÷ ST Y 100 × RTN
5.3. Integers
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ROUND) @@@@ DSC: Properly round to integer. N.5 rounded to nearest even number. @@@@ IN: X: real number @@@@ OUT: X: floor(X) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 @@@@ TC: -2.0 -2 →Int @@@@ TC: -1.6 -2 →Nearest @@@@ TC: -1.5 -2 →Even @@@@ TC: -1.4 -1 →Nearest @@@@ TC: -1.0 -1 →Int @@@@ TC: -1.6 -1 →Nearest @@@@ TC: -0.5 0 Even Rule @@@@ TC: -0.4 0 →Nearest @@@@ TC: 0.0 0 →Int @@@@ TC: 0.4 0 →Nearest @@@@ TC: 0.5 0 Even Rule @@@@ TC: 1.6 1 →Nearest @@@@ TC: 1.0 1 →Int @@@@ TC: 1.4 1 →Nearest @@@@ TC: 1.5 2 →Even @@@@ TC: 1.6 2 →Nearest @@@@ TC: 2.0 2 →Int LBL "ROUND" FUNC 11 L4STK ENTER @@@@ X X FP @@@@ FP X ABS @@@@ |FP| X 0.5 @@@@ 1/2 |FP| X - @@@@ |FP|-1/2 X X<>Y @@@@ X |FP|-1/2 X SIGN @@@@ SGN |FP|-1/2 X LASTX @@@@ X SGN |FP|-1/2 X IP @@@@ IP(X) SGN |FP|-1/2 X 0=? ST Z GTO 67 0<? ST Z + RTN LBL 67 @@@@ FP=1/2 XEQ 68 @@@@ ODD? + RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: RETYES if X is odd, RTNNO otherwise LBL 68 @@@@ ODD? FUNC 00 L4STK 2 ÷ FP X=0? RTNNO RTNYES @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (FLOOR) @@@@ DSC: Floor -- Round toward negative infinity @@@@ IN: X: real number @@@@ OUT: X: floor(X) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "FLOOR" FUNC 11 L4STK FP LASTX IP 0≤? ST Y RTN 1 - RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (CEIL) @@@@ DSC: Ceiling -- Round toward positive infinity @@@@ IN: X: real number @@@@ OUT: X: ceil(X) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "CEIL" FUNC 11 L4STK FP LASTX IP 0≥? ST Y RTN 1 + RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (GCD) @@@@ DSC: GCD @@@@ IN: Y: real number @@@@ X: real number @@@@ OUT: X: GCD(|IP(X)|, |IP(X)|) @@@@ LBL: 66 @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "GCD" FUNC 21 L4STK ABS IP X<>Y ABS IP X>Y? X<>Y LBL 66 STO ST Z MOD X>0? GTO 66 R↓ RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (LCM) @@@@ DSC: LCM @@@@ IN: Y: real number @@@@ X: real number @@@@ OUT: X: LCM(|IP(X)|, |IP(X)|) @@@@ USE: GCD @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "LCM" FUNC 21 L4STK ABS @@@@ |X| Y IP @@@@ IP(|X|) Y X=0? RTN X<>Y @@@@ Y IP(|X|) ABS @@@@ |Y| IP(|X|) IP @@@@ IP(|Y|) IP(|X|) X=0? RTN RCL ST Y @@@@ IP(|X|) IP(|Y|) IP(|X|) RCL ST Y @@@@ IP(|Y|) IP(|X|) IP(|Y|) IP(|X|) × @@@@ IP(|Y|)*IP(|X|) IP(|Y|) IP(|X|) RCL ST Z @@@@ IP(|X|) IP(|Y|)*IP(|X|) IP(|Y|) IP(|X|) RCL ST Z @@@@ IP(|Y|) IP(|X|) IP(|Y|)*IP(|X|) IP(|Y|) XEQ "GCD" @@@@ GCD IP(|Y|)*IP(|X|) IP(|Y|) IP(|Y|) ÷ @@@@ LCM IP(|Y|) IP(|Y|) IP(|Y|) RTN
5.4. Binomials, Factorals, Beta, etc…
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (BETA) @@@@ DSC: beta function @@@@ IN: Y: Number @@@@ IN: X: Number @@@@ OUT: X: beta(x, y) = beta(y, x) @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL "BETA" FUNC 21 L4STK RCL ST Y GAMMA RCL ST Y GAMMA × RCL ST Z RCL ST Z + GAMMA ÷ RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (DIGAMM) @@@@ DSC: digamma function @@@@ IN: X: Number @@@@ OUT: X: psi(X) @@@@ FAQ: Good to about 1e-5 for real X>0.1 @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL "DIGAMM" FUNC 11 L4STK LSTO "_X" @@@@ X 2 @@@@ 2 X + @@@@ 2+X LSTO "_S" @@@@ S LN @@@@ SUM ln(s) 2 @@@@ 2 S SUM RCL× "_S" @@@@ 2*S SUM 1/X @@@@ TRM SUM - @@@@ SUM ln(s) -1/(2*s) RCL "_S" @@@@ S SUM X↑2 @@@@ S^2 SUM LSTO "_SS" @@@@ SS SUM 12 @@@@ 12 S^2 SUM × @@@@ 12*S^2 SUM 1/X @@@@ TRM SUM - @@@@ SUM ln(s) -1/(2*s) -1/(12*s^2) RCL "_SS" @@@@ S^2 SUM RCL× "_SS" @@@@ S^4 SUM STO ST Z @@@@ S^4 SUM S^4 120 × 1/X + @@@@ SUM S^4 ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) X<>Y RCL× "_SS" @@@@ S^6 SUM STO ST Z @@@@ S^6 SUM S^6 252 × 1/X - @@@@ SUM S^6 ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) X<>Y RCL× "_SS" @@@@ S^8 SUM STO ST Z @@@@ S^8 SUM S^8 240 × 1/X + @@@@ SUM S^8 ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) +1/(240*s^8) X<>Y RCL× "_SS" @@@@ S^10 SUM STO ST Z @@@@ S^10 SUM S^10 660 × 1/X 5 × - @@@@ SUM S^10 ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) +1/(240*s^8) -5/(660*s^10) X<>Y RCL× "_SS" @@@@ S^12 SUM STO ST Z @@@@ S^12 SUM S^12 32760 × 1/X 691 × + @@@@ SUM S^12 ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) +1/(240*s^8) -5/(660*s^10) +691/(32760*s^12) X<>Y RCL× "_SS" @@@@ S^14 SUM 12 × 1/X - @@@@ SUM ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) +1/(240*s^8) -5/(660*s^10) +691/(32760*s^12) -1/(12*s^14) RCL "_X" 1/X - @@@@ SUM ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) +1/(240*s^8) -5/(660*s^10) +691/(32760*s^12) -1/(12*s^14) -1/x RCL "_X" 1 + 1/X - @@@@ SUM ln(s) -1/(2*s) -1/(12*s^2) +1/(120*s^4) -1/(252*s^6) +1/(240*s^8) -5/(660*s^10) +691/(32760*s^12) -1/(12*s^14) -1/x -1/(x+1) RTN
5.5. Error & Standard Normal Functions
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (NPDF) @@@@ DSC: Standard Normal PDF @@@@ IN: X: real number @@@@ OUT: X: Standard Normal PDF value at X @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 @@@@ TC: -2 0.05399096651318805195056 @@@@ TC: -1 0.2419707245191433497978 @@@@ TC: 0 0.3989422804014326779399 @@@@ TC: 1 0.2419707245191433497978 @@@@ TC: 2 0.05399096651318805195056 LBL "NPDF" FUNC 11 L4STK X↑2 @@@@ X^2 -2 @@@@ -2 X^2 ÷ @@@@ -X^2/2 E↑X @@@@ EXP(-X^2/2) 2 @@@@ 2 EXP(-X^2/2) PI @@@@ PI 2 EXP(-X^2/2) × @@@@ PI*2 EXP(-X^2/2) SQRT @@@@ SQRT(PI*2) EXP(-X^2/2) ÷ @@@@ EXP(-X^2/2)/SQRT(PI*2) RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (NCDF) @@@@ DSC: Standard Normal CDF @@@@ IN: X: real number @@@@ OUT: X: Standard Normal CDF value at X @@@@ BUG: Only good to 7 decimal places @@@@ FAQ: No dependancies, variables, loops, or branches @@@@ REF: Zelen & Severo (1964) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 @@@@ TC: -2 0.02275013194817920720028 @@@@ TC: -1 0.1586552539314570514148 @@@@ TC: 0 0.5 @@@@ TC: 1 0.8413447460685429485852 @@@@ TC: 2 0.9772498680518207927997 LBL "NCDF" FUNC 11 L4STK 0.2316419 @@@@ b0 X ? ? RCL× ST Y @@@@ b0*X X ? ? 1 @@@@ 1 b0*X X ? + @@@@ 1+b0*X X ? ? 1/X @@@@ 1/(1+b0*X) X ? ? @@@@ T X ? ? X<>Y @@@@ X T ? ? X↑2 @@@@ X^2 T ? ? -2 @@@@ -2 X^2 ? ? ÷ @@@@ -X^2/2 T ? ? E↑X @@@@ EXP(-X^2/2) T ? ? 2 @@@@ 2 EXP(-X^2/2) T ? PI @@@@ PI 2 EXP(-X^2/2) T × @@@@ PI*2 EXP(-X^2/2) T T SQRT @@@@ SQRT(PI*2) EXP(-X^2/2) T T ÷ @@@@ EXP(-X^2/2)/SQRT(PI*2) T T T @@@@ N T T T RCL ST Y @@@@ T N T T × @@@@ NT T T T 0.319381530 @@@@ b1 NT T T RCL× ST Y @@@@ PR NT T T RCL ST Z @@@@ T PR NT T STO× ST Z @@@@ T PR NT^2 T R↓ @@@@ PR NT^2 T T -0.356563782 @@@@ b2 PR NT^2 T RCL× ST Z @@@@ NT PR NT^2 T + @@@@ PR NT^2 T T RCL ST Z @@@@ T PR NT^2 T STO× ST Z @@@@ T PR NT^3 T R↓ @@@@ PR NT^3 T T 1.781477937 @@@@ b3 PR NT^3 T RCL× ST Z @@@@ NT PR NT^3 T + @@@@ PR NT^3 T T RCL ST Z @@@@ T PR NT^3 T STO× ST Z @@@@ T PR NT^4 T R↓ @@@@ PR NT^4 T T -1.821255978 @@@@ b4 PR NT^4 T RCL× ST Z @@@@ NT PR NT^4 T + @@@@ PR NT^4 T T RCL ST Z @@@@ T PR NT^4 T STO× ST Z @@@@ T PR NT^5 T R↓ @@@@ PR NT^5 T T 1.330274429 @@@@ b5 PR NT^5 T RCL× ST Z @@@@ NT PR NT^5 T + @@@@ PR NT^5 T T 1 @@@@ 1 PR NT^5 T X<>Y @@@@ PR 1 NT^5 T - @@@@ 1-PR NT^5 T T RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ERF) @@@@ DSC: erf (error) function @@@@ IN: X: real number @@@@ OUT: X: erf(X) @@@@ USE: NCDF @@@@ LBL: Use: 64-65 @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 @@@@ TC: -1 -0.8427007929497148693412 @@@@ TC: 0 0.0 @@@@ TC: 1 0.8427007929497148693412 @@@@ TC: 2 0.9953222650189527341621 LBL "ERF" FUNC 11 L4STK ENTER ENTER 2 SQRT × ABS XEQ "NCDF" 2 × 1 - X<>Y X<0? GTO 64 GTO 65 LBL 64 R↓ +/- RTN LBL 65 R↓ RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ERFC) @@@@ DSC: erfc (complementary error) function @@@@ IN: X: real number @@@@ OUT: X: erfc(X) @@@@ USE: ERF @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 @@@@ TC: -1 1.842700792949714869341 @@@@ TC: 0 1.0 @@@@ TC: 1 0.1572992070502851306588 @@@@ TC: 2 0.004677734981047265837931 LBL "ERFC" FUNC 11 L4STK XEQ "ERF" 1 X<>Y - RTN
5.6. Hyperbolic Trigonometric Functions
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (CSCH) @@@@ DSC: 1/SINH(X) LBL "CSCH" FUNC 11 L4STK SINH 1/X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (SECH) @@@@ DSC: 1/COSH(X) LBL "SECH" FUNC 11 L4STK COSH 1/X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (COTH) @@@@ DSC: 1/TANH(X) LBL "COTH" FUNC 11 L4STK TANH 1/X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ACSCH) @@@@ DSC: SINH(1/X) LBL "ACSCH" FUNC 11 L4STK 1/X ASINH RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ASECH) @@@@ DSC: COSH(1/X) LBL "ASECH" FUNC 11 L4STK 1/X ACOSH RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ACOTH) @@@@ DSC: TANH(1/X) LBL "ACOTH" FUNC 11 L4STK 1/X ATANH RTN
5.7. Trigonometric Functions
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (AHAV) @@@@ DSC: Inverse Haversine @@@@ IN: X: number @@@@ OUT: X: ahav(X)=2*asin(sqrt(X)) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "AHAV" FUNC 11 L4STK SQRT ASIN 2 × RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (HAV) @@@@ DSC: Haversine @@@@ IN: X: number @@@@ OUT: X: hav(X)=1/2-cos(X)/2 @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "HAV" FUNC 11 L4STK COS -2 ÷ 0.5 + RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (HYPOT) @@@@ DSC: Hypot @@@@ IN: Y: number @@@@ IN: X: number @@@@ OUT: X: sqrt(abs(x)^2+abs(y)^2) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "HYPOT" FUNC 21 L4STK ABS X<>Y ABS COMPLEX ABS RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (CSC) @@@@ DSC: 1/SIN(X) LBL "CSC" FUNC 11 L4STK SIN 1/X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (SEC) @@@@ DSC: 1/COS(X) LBL "SEC" FUNC 11 L4STK COS 1/X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (COT) @@@@ DSC: 1/TAN(X) LBL "COT" FUNC 11 L4STK TAN 1/X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ACSC) @@@@ DSC: SIN(1/X) LBL "ACSC" FUNC 11 L4STK 1/X ASIN RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ASEC) @@@@ DSC: COS(1/X) LBL "ASEC" FUNC 11 L4STK 1/X ACOS RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ACOT) @@@@ DSC: TAN(1/X) LBL "ACOT" FUNC 11 L4STK 1/X ATAN RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ATAN2) @@@@ DSC: ATAN2 @@@@ IN: Y: number @@@@ IN: X: number @@@@ OUT: X: atan2(y, x) @@@@ BUG: Only works in RAD mode @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 @@@@ TC: atan( 1, 1) => pi/4 = 45° @@@@ TC: atan(-1, 1) => -pi/4 = -45° @@@@ TC: atan( 1,-1) => 3*pi/4 = 135° @@@@ TC: atan(-1,-1) => -3*pi/4 = -135° @@@@ TC: atan( 0, 1) => 0 = 0° @@@@ TC: atan( 1, 0) => pi = 90° @@@@ TC: atan(-1, 0) => -pi = -90° @@@@ TC: atan( 0, 0) => ERROR @@@@ LBL: Used 59-63 LBL "TAN2" FUNC 21 L4STK X>0? GTO 59 X=0? GTO 60 @@@@ X<0 X<>Y X<0? GTO 61 @@@@ X<0 & Y>=0 X<>Y ÷ ATAN PI + RTN LBL 61 @@@@ X<0 & Y<0 X<>Y ÷ ATAN PI - RTN LBL 60 X<>Y X=0? GTO 62 X>0? GTO 63 @@@@ X=0 & Y<0 PI -2 ÷ RTN LBL 63 @@@@ X=0 & Y>0 PI 2 ÷ RTN LBL 62 @@@@ X=0 & Y=0 ERROR 0/0 ÷ RTN LBL 59 @@@@ X>0 ÷ ATAN RTN
5.8. Logs, Powers & Roots
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (lnYX) @@@@ DSC: Base Y Logarithm of X @@@@ IN: Y: logarithm base @@@@ X: value @@@@ OUT: X: log_y(x) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "lnYX" FUNC 21 L4STK LN X<>Y LN ÷ RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ln2) @@@@ DSC: Base 2 Logarithm @@@@ IN: X: value @@@@ OUT: X: log_2(x) @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL "ln2" FUNC 11 L4STK LN 2 LN ÷ RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Raise 2 to the power of X @@@@ NAM: 2↑X 58 @@@@ IN: X: value @@@@ OUT: X: 2^X @@@@ UPD: 2025-10-07 @@@@ TST: free42_3.0.2 LBL 58 FUNC 11 L4STK 2 X<>Y Y^X RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Square root prefering real & pure imaginary answers @@@@ NAM: ROOT2 57 @@@@ IN: X: value @@@@ OUT: X: root of X @@@@ FAQ: See XYROOT for details @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL 57 FUNC 11 2 X<>Y XEQ "YROOT" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Cube root prefering real & pure imaginary answers @@@@ NAM: ROOT3 56 @@@@ IN: X: value @@@@ OUT: X: root of X @@@@ FAQ: See XYROOT for details @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL 56 FUNC 11 3 X<>Y XEQ "YROOT" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Fifth root prefering real & pure imaginary answers @@@@ NAM: ROOT5 55 @@@@ IN: X: value @@@@ OUT: X: root of X @@@@ FAQ: See XYROOT for details @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL 55 FUNC 11 5 X<>Y XEQ "YROOT" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@ DSC: Seventh root prefering real & pure imaginary answers @@@@ NAM: ROOT7 54 @@@@ IN: X: value @@@@ OUT: X: root of X @@@@ FAQ: See XYROOT for details @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL 54 FUNC 11 7 X<>Y XEQ "YROOT" RTN @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (YROOT) @@@@ DSC: Nth roots prefering real & pure imaginary answers @@@@ IN: Y: Number @@@@ IN: X: value @@@@ OUT: X: Yth root of X @@@@ BUG: The principal value is not always returned (by design) @@@@ BUG: Real integers are not recognized in complex form. i.e. 0+2i ≠ 2 @@@@ FAQ: Return is pure imaginary when Y is an odd integer and X<0 @@@@ FAQ: Return is real when Y is an even integer and X<0 @@@@ TST: free42_3.0.2 @@@@ UPD: 2025-10-07 LBL "YROOT" FUNC 21 L4STK REAL? GTO 48 GTO 51 LBL 48 @@@@ X is real X≥0? GTO 51 @@@@ X is negative, real RCL ST Y REAL? GTO 49 GTO 50 LBL 49 @@@@ X is negative, real; Y is real FP X≠0? GTO 50 @@@@ X is negative, real; Y is real integer R↓ ABS RCL ST Y X<>Y XEQ 51 +/- X<>Y 2 ÷ FP X=0? GTO 53 GTO 52 LBL 53 @@@@ X is negative, real; Y is real integer even R↓ -1 SQRT × RTN LBL 52 @@@@ X is negative, real; Y is real integer odd R↓ RTN LBL 50 @@@@ Not special case. Stack: Y X Y R↓ LBL 51 @@@@ Not special case. Stack: X Y X<>Y 1/X Y↑X RTN
5.9. Everything Else
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ (ref:||) @@@@ DSC: Parallel Operator @@@@ IN: Y: A Number @@@@ IN: X: A Number @@@@ OUT: X: 1/(1/X+1/Y) @@@@ UPD: 2025-10-07 LBL "||" FUNC 21 L4STK 1/X X<>Y 1/X + 1/X RTN
6. END
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
END