os-test > basic > math

Legend

Outcomes
Good Good Missing optional Outside libc
Partial Extension Previous posix
Neutral None
Bad Compile error Incompatible Missing header Undeclared Undefined reference Unknown type

Good. A cell is good if the declaration is present in the header and can be linked with libc. This outcome means the test succeeded with the appropriate -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros and the standard libraries libc, libpthread, libm, librt, and libxnet.

Missing optional. A cell is missing_optional if the test could not be compiled, but the declaration is optional in POSIX and need not be provided.

Outside libc. A cell is outside_libc if the test could be compiled, but had to be linked with another standard library than the ones prescribed by POSIX: libc, libpthread, libm, librt, and libxnet. This may not conform to POSIX depending on the linking options provided by getconf(1)/confstr(3).

Extension. A cell is extension if the test could not be compiled with the _POSIX_C_SOURCE and _XOPEN_SOURCE feature macros, but it could instead be compiled with other system-specific feature macros that provide the entire API. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. This outcome typically indicates a declaration new to POSIX.1-2024.

Previous posix. A cell is previous_posix if the test could not be compiled with the -D_POSIX_C_SOURCE=202405 or -D_XOPEN_SOURCE=800 feature macros from the POSIX.1-2024 standard, but the test could instead be compiled with the older -D_POSIX_C_SOURCE=200809L or -D_XOPEN_SOURCE=700 feature macros from the older POSIX.1-2008 standard. This outcome means the system header feature macro logic does not support the latest POSIX.1-2024 standard and only receives partial credit. In particular, the header did not check if the value was higher than the supported value, but instead hard-coded the supported values, and failed to be forward compatible with new standard versions.

None. A cell is none if there is no test data result for that operating system.

Compile error. A cell is compile_error if the test could not be compiled and the error message was not recognized as a more precise error test outcome.

Incompatible. A cell is incompatible if the declaration existed in the header, but had a signature that is incompatible with the standardized declaration. This outcome typically indicates a type error in the declaration. Addressing the issue may require an incompatible ABI change or special compatibility logic.

Missing header. A cell is missing_header if the header did not exist.

Undeclared. A cell is undeclared if the header did not contain the declaration.

Undefined reference. A cell is undefined if the test could be compiled, but could not be linked with the standard library.

Unknown type. A cell is unknown_type if the test could not be compiled and failed because a required type was not declared. In some cases, functions fail because the header omitted a required type for a function and instead declared the function in an alternate fashion with an incompatible alias for the type.

§. The § link on the left of each row links to that row.

math

genode
Genode
§ acos genode: good
exit: 0
§ acosf genode: good
exit: 0
§ acosh genode: good
exit: 0
§ acoshf genode: good
exit: 0
§ acoshl genode: good
exit: 0
§ acosl genode: good
exit: 0
§ asin genode: good
exit: 0
§ asinf genode: good
exit: 0
§ asinh genode: bad
(1.) asinh(90.0100) = 0x1.4c5bbb1e54aae0p+2, not 0x1.4c5bbb1e54aad0p+2, diff 0x1.00000000000000p-50, ratio 1
§ asinhf genode: good
exit: 0
§ asinhl genode: good
exit: 0
§ asinl genode: good
exit: 0
§ atan genode: good
exit: 0
§ atan2 genode: good
exit: 0
§ atan2f genode: bad
(1.) atan2f(90.0100, 13.3700) = 0x1.6c5fb8p+0, not 0x1.6c5fb6p+0, diff 0x1.000000p-23, ratio 1.0000001
§ atan2l genode: bad
(7.) atan2l(90.0100, -12.3400) = 0x1.b500c286491e5e1c0p+0, not 0x1.b500c286491e5e1a0p+0, diff 0x1.00000000000000000p-63, ratio 1.0000000000000000001
§ atanf genode: good
exit: 0
§ atanh genode: bad
(2.) atanh(-0.1234) = -0x1.fc0921af779c60p-4, not -0x1.fc0921af779c70p-4, diff 0x1.00000000000000p-56, ratio 0.9999999999999999
§ atanhf genode: good
exit: 0
§ atanhl genode: good
exit: 0
§ atanl genode: good
exit: 0
§ cbrt genode: good
exit: 0
§ cbrtf genode: good
exit: 0
§ cbrtl genode: bad
(2.) cbrtl(-12.3400) = -0x1.27c9ed3172f310640p+1, not -0x1.27c9ed3172f310620p+1, diff -0x1.00000000000000000p-62, ratio 1.0000000000000000001
§ ceil genode: good
exit: 0
§ ceilf genode: good
exit: 0
§ ceill genode: good
exit: 0
§ copysign genode: good
exit: 0
§ copysignf genode: good
exit: 0
§ copysignl genode: good
exit: 0
§ cos genode: bad
(4.) cos(inf) did not FE_INVALID
§ cosf genode: bad
(4.) cosf(inf) did not FE_INVALID
§ cosh genode: good
exit: 0
§ coshf genode: good
exit: 0
§ coshl genode: good
exit: 0
§ cosl genode: bad
(4.) cosl(inf) did not FE_INVALID
§ erf genode: good
exit: 0
§ erfc genode: good
exit: 0
§ erfcf genode: good
exit: 0
§ erfcl genode: good
exit: 0
§ erff genode: good
exit: 0
§ erfl genode: good
exit: 0
§ exp genode: good
exit: 0
§ exp2 genode: good
exit: 0
§ exp2f genode: good
exit: 0
§ exp2l genode: bad
exp2l: ENOENT
§ expf genode: good
exit: 0
§ expl genode: good
exit: 0
§ expm1 genode: good
exit: 0
§ expm1f genode: good
exit: 0
§ expm1l genode: good
exit: 0
§ fabs genode: good
exit: 0
§ fabsf genode: good
exit: 0
§ fabsl genode: good
exit: 0
§ fdim genode: good
exit: 0
§ fdimf genode: good
exit: 0
§ fdiml genode: good
exit: 0
§ floor genode: good
exit: 0
§ floorf genode: good
exit: 0
§ floorl genode: good
exit: 0
§ fma genode: bad
(24.) fma(0.0000, inf, 10.1000) did not FE_INVALID
§ fmaf genode: bad
(24.) fmaf(0.0000, inf, 10.1000) did not FE_INVALID
§ fmal genode: bad
(24.) fmal(0.0000, inf, 10.1000) did not FE_INVALID
§ fmax genode: good
exit: 0
§ fmaxf genode: good
exit: 0
§ fmaxl genode: good
exit: 0
§ fmin genode: good
exit: 0
§ fminf genode: good
exit: 0
§ fminl genode: good
exit: 0
§ fmod genode: good
exit: 0
§ fmodf genode: good
exit: 0
§ fmodl genode: good
exit: 0
§ frexp genode: good
exit: 0
§ frexpf genode: good
exit: 0
§ frexpl genode: good
exit: 0
§ hypot genode: bad
(1.) hypot(90.0100, 13.3700) = 0x1.6bfd81ea6a64b0p+6, not 0x1.6bfd81ea6a64c0p+6, diff -0x1.00000000000000p-46, ratio 0.9999999999999999
§ hypotf genode: good
exit: 0
§ hypotl genode: good
exit: 0
§ ilogb genode: bad
(3.) ilogb(nan) did not FE_INVALID
§ ilogbf genode: bad
(3.) ilogbf(nan) did not FE_INVALID
§ ilogbl genode: bad
(3.) ilogbl(nan) did not FE_INVALID
§ ldexp genode: good
exit: 0
§ ldexpf genode: good
exit: 0
§ ldexpl genode: good
exit: 0
§ lgamma genode: bad
(1.) lgamma(90.0100) = 0x1.39b2a13f727440p+8, not 0x1.39b2a13f727430p+8, diff 0x1.00000000000000p-44, ratio 1
§ lgammaf genode: bad
(2.) lgammaf(-12.3400) = -0x1.392e8ap+4, not -0x1.392e8cp+4, diff 0x1.000000p-19, ratio 0.99999988
§ lgammal genode: bad
(1.) lgammal(90.0100) = 0x1.39b2a13f72742eec0p+8, not 0x1.39b2a13f72742eee0p+8, diff -0x1.00000000000000000p-55, ratio 0.99999999999999999989
§ llrint genode: good
exit: 0
§ llrintf genode: good
exit: 0
§ llrintl genode: good
exit: 0
§ llround genode: good
exit: 0
§ llroundf genode: good
exit: 0
§ llroundl genode: good
exit: 0
§ log genode: good
exit: 0
§ log10 genode: good
exit: 0
§ log10f genode: good
exit: 0
§ log10l genode: good
exit: 0
§ log1p genode: good
exit: 0
§ log1pf genode: bad
(1.) log1pf(90.0100) = 0x1.20b3b8p+2, not 0x1.20b3bap+2, diff -0x1.000000p-21, ratio 0.99999988
§ log1pl genode: good
exit: 0
§ log2 genode: good
exit: 0
§ log2f genode: good
exit: 0
§ log2l genode: good
exit: 0
§ logb genode: good
exit: 0
§ logbf genode: good
exit: 0
§ logbl genode: good
exit: 0
§ logf genode: good
exit: 0
§ logl genode: good
exit: 0
§ lrint genode: good
exit: 0
§ lrintf genode: good
exit: 0
§ lrintl genode: good
exit: 0
§ lround genode: good
exit: 0
§ lroundf genode: good
exit: 0
§ lroundl genode: good
exit: 0
§ modf genode: good
exit: 0
§ modff genode: good
exit: 0
§ modfl genode: good
exit: 0
§ nan genode: good
exit: 0
§ nanf genode: good
exit: 0
§ nanl genode: good
exit: 0
§ nearbyint genode: good
exit: 0
§ nearbyintf genode: good
exit: 0
§ nearbyintl genode: good
exit: 0
§ nextafter genode: good
exit: 0
§ nextafterf genode: good
exit: 0
§ nextafterl genode: good
exit: 0
§ nexttoward genode: good
exit: 0
§ nexttowardf genode: good
exit: 0
§ nexttowardl genode: good
exit: 0
§ pow genode: good
exit: 0
§ powf genode: bad
(1.) powf(90.0100, 13.3700) = 0x1.bd2c00p+86, not 0x1.bd2c02p+86, diff -0x1.000000p+63, ratio 0.99999994
§ powl genode: bad
(10.) powl(0.0000, -12.3400) did not FE_DIVBYZERO
§ remainder genode: good
exit: 0
§ remainderf genode: good
exit: 0
§ remainderl genode: good
exit: 0
§ remquo genode: good
exit: 0
§ remquof genode: good
exit: 0
§ remquol genode: good
exit: 0
§ rint genode: good
exit: 0
§ rintf genode: good
exit: 0
§ rintl genode: good
exit: 0
§ round genode: good
exit: 0
§ roundf genode: good
exit: 0
§ roundl genode: good
exit: 0
§ scalbln genode: good
exit: 0
§ scalblnf genode: good
exit: 0
§ scalblnl genode: good
exit: 0
§ scalbn genode: good
exit: 0
§ scalbnf genode: good
exit: 0
§ scalbnl genode: good
exit: 0
§ sin genode: bad
(4.) sin(inf) did not FE_INVALID
§ sinf genode: bad
(4.) sinf(inf) did not FE_INVALID
§ sinh genode: good
exit: 0
§ sinhf genode: good
exit: 0
§ sinhl genode: good
exit: 0
§ sinl genode: bad
(4.) sinl(inf) did not FE_INVALID
§ sqrt genode: good
exit: 0
§ sqrtf genode: good
exit: 0
§ sqrtl genode: good
exit: 0
§ tan genode: bad
(4.) tan(inf) did not FE_INVALID
§ tanf genode: bad
(1.) tanf(90.0100) = -0x1.f2444ep+0, not -0x1.f2444cp+0, diff -0x1.000000p-23, ratio 1.0000001
(4.) tanf(inf) did not FE_INVALID
§ tanh genode: good
exit: 0
§ tanhf genode: good
exit: 0
§ tanhl genode: good
exit: 0
§ tanl genode: bad
(4.) tanl(inf) did not FE_INVALID
§ tgamma genode: bad
(3.) tgamma(nan) FE_INVALID
§ tgammaf genode: bad
(3.) tgammaf(nan) FE_INVALID
§ tgammal genode: bad
(1.) tgammal(90.0100) = 0x1.7c18aa84560f70000p+452, not 0x1.7c18aa84560f73040p+452, diff -0x1.82000000000000000p+397, ratio 0.99999999999999997181
(3.) tgammal(nan) FE_INVALID
§ trunc genode: good
exit: 0
§ truncf genode: good
exit: 0
§ truncl genode: good
exit: 0
Optional: XSI
X/Open System Interfaces
§ j0 genode: good
exit: 0
§ j1 genode: good
exit: 0
§ jn genode: good
exit: 0
§ y0 genode: good
exit: 0
§ y1 genode: good
exit: 0
§ yn genode: good
exit: 0