summaryrefslogtreecommitdiffstats
path: root/Src/Modules/mathfunc.c
diff options
context:
space:
mode:
authordana <dana@dana.is>2026-04-13 11:04:58 -0500
committerdana <dana@dana.is>2026-04-13 11:07:56 -0500
commitbfb982d6824a41ebff1fc5934ebee7f01df1e682 (patch)
tree4cf710d17dcd411e88f1f5261ed96ec15202c394 /Src/Modules/mathfunc.c
parent54313: convfloat: use consistent capitalisation for NaN, Inf, and -Inf (diff)
downloadzsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.tar
zsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.tar.gz
zsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.tar.bz2
zsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.tar.lz
zsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.tar.xz
zsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.tar.zst
zsh-bfb982d6824a41ebff1fc5934ebee7f01df1e682.zip
54318: mathfunc: add isnan() and isinf(). also document NaN + Inf
Diffstat (limited to 'Src/Modules/mathfunc.c')
-rw-r--r--Src/Modules/mathfunc.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/Src/Modules/mathfunc.c b/Src/Modules/mathfunc.c
index fc2593dca..0941b3bb1 100644
--- a/Src/Modules/mathfunc.c
+++ b/Src/Modules/mathfunc.c
@@ -57,6 +57,8 @@ MF_GAMMA,
MF_HYPOT,
MF_ILOGB,
MF_INT,
+MF_ISINF,
+MF_ISNAN,
MF_J0,
MF_J1,
MF_JN,
@@ -135,6 +137,8 @@ static struct mathfunc mftab[] = {
NUMMATHFUNC("hypot", math_func, 2, 2, MF_HYPOT),
NUMMATHFUNC("ilogb", math_func, 1, 1, MF_ILOGB | TFLAG(TF_NOASS)),
NUMMATHFUNC("int", math_func, 1, 1, MF_INT | TFLAG(TF_NOASS)),
+ NUMMATHFUNC("isinf", math_func, 1, 1, MF_ISINF | TFLAG(TF_NOASS)),
+ NUMMATHFUNC("isnan", math_func, 1, 1, MF_ISNAN | TFLAG(TF_NOASS)),
NUMMATHFUNC("j0", math_func, 1, 1, MF_J0),
NUMMATHFUNC("j1", math_func, 1, 1, MF_J1),
NUMMATHFUNC("jn", math_func, 2, 2, MF_JN | TFLAG(TF_INT1)),
@@ -308,6 +312,16 @@ math_func(UNUSED(char *name), int argc, mnumber *argv, int id)
ret.u.l = (zlong)argd;
break;
+ case MF_ISINF:
+ ret.type = MN_INTEGER;
+ ret.u.l = (zlong) isinf(argd);
+ break;
+
+ case MF_ISNAN:
+ ret.type = MN_INTEGER;
+ ret.u.l = (zlong) isnan(argd);
+ break;
+
case MF_J0:
retd = j0(argd);
break;