os-test > basic > complex

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.

complex

genode
Genode
§ cabs genode: bad
(1.) cabs(90.0100 + i*13.3700) = 0x1.6bfd81ea6a64b0p+6, not 0x1.6bfd81ea6a64c0p+6, diff -0x1.00000000000000p-46, ratio 0.9999999999999999
§ cabsf genode: good
exit: 0
§ cabsl genode: good
exit: 0
§ cacos genode: bad
(1.) cacos(0.9001 + i*0.1337).real = 0x1.0912d6180661b0p-1, not 0x1.0912d6180661d0p-1, diff -0x1.00000000000000p-52, ratio 0.9999999999999996
§ cacosf genode: bad
(1.) cacosf(0.9001 + i*0.1337).imag = -0x1.116114p-2, not -0x1.116116p-2, diff 0x1.000000p-25, ratio 0.99999988
§ cacosh genode: bad
(7.) cacosh(90.0100 + i*-12.3400).real = 0x1.4cf34a0eb6e560p+2, not 0x1.4cf34a0eb6e550p+2, diff 0x1.00000000000000p-50, ratio 1
(18.) cacosh(0.0000 + i*nan).imag = nan, not 0x1.921fb54442d180p+0, diff nan, ratio nan
§ cacoshf genode: bad
(1.) cacoshf(90.0100 + i*13.3700).imag = 0x1.2e048ep-3, not 0x1.2e048cp-3, diff 0x1.000000p-26, ratio 1.0000001
(18.) cacoshf(0.0000 + i*nan).imag = nan, not 0x1.921fb6p+0, diff nan, ratio nan
§ cacoshl genode: bad
(2.) cacoshl(-12.3400 + i*13.3700).real = 0x1.cc1291f92bcb71600p+1, not 0x1.cc1291f92bcb715e0p+1, diff 0x1.00000000000000000p-62, ratio 1.0000000000000000001
(18.) cacoshl(0.0000 + i*nan).imag = nan, not 0x1.921fb54442d1846a0p+0, diff nan, ratio nan
§ cacosl genode: bad
(7.) cacosl(0.9001 + i*-0.1234).real = 0x1.05338a3c5b05c5e00p-1, not 0x1.05338a3c5b05c5de0p-1, diff 0x1.00000000000000000p-64, ratio 1.0000000000000000001
§ carg genode: bad
(1.) carg(90.0100 + i*13.3700) = 0x1.2dfff31e7d1cb0p-3, not 0x1.2dfff31e7d1ca0p-3, diff 0x1.00000000000000p-55, ratio 1
§ cargf genode: bad
(1.) cargf(90.0100 + i*13.3700) = 0x1.2dfff4p-3, not 0x1.2dfff2p-3, diff 0x1.000000p-26, ratio 1.0000001
§ cargl genode: bad
(1.) cargl(90.0100 + i*13.3700) = 0x1.2dfff31e7d1ca2840p-3, not 0x1.2dfff31e7d1ca2860p-3, diff -0x1.00000000000000000p-66, ratio 0.99999999999999999989
§ casin genode: bad
(1.) casin(0.9001 + i*0.1337).real = 0x1.0d964a383fa0b0p+0, not 0x1.0d964a383fa0a0p+0, diff 0x1.00000000000000p-52, ratio 1
§ casinf genode: bad
(1.) casinf(0.9001 + i*0.1337).imag = 0x1.116114p-2, not 0x1.116116p-2, diff -0x1.000000p-25, ratio 0.99999988
§ casinh genode: bad
(1.) casinh(90.0100 + i*13.3700).imag = 0x1.2dfb5963e650d0p-3, not 0x1.2dfb5963e650c0p-3, diff 0x1.00000000000000p-55, ratio 1
(27.) casinh(nan + i*-inf).real = -inf, not inf, diff -inf, ratio nan
§ casinhf genode: bad
(1.) casinhf(90.0100 + i*13.3700).imag = 0x1.2dfb5ap-3, not 0x1.2dfb58p-3, diff 0x1.000000p-26, ratio 1.0000001
(27.) casinhf(nan + i*-inf).real = -inf, not inf, diff -inf, ratio nan
§ casinhl genode: bad
(12.) casinhl(0.0000 + i*-12.3400).real = 0x1.9a280e136534862c0p+1, not 0x1.9a280e136534862e0p+1, diff -0x1.00000000000000000p-62, ratio 0.99999999999999999995
(27.) casinhl(nan + i*-inf).real = -inf, not inf, diff -inf, ratio nan
§ casinl genode: bad
(8.) casinl(-0.1234 + i*-0.1234).real = -0x1.f6d8a8495ba442dc0p-4, not -0x1.f6d8a8495ba442de0p-4, diff 0x1.00000000000000000p-67, ratio 0.99999999999999999995
§ catan genode: bad
(2.) catan(-12.3400 + i*13.3700).imag = 0x1.4a9599469002c0p-5, not 0x1.4a9599469002d0p-5, diff -0x1.00000000000000p-57, ratio 0.9999999999999998
§ catanf genode: bad
(8.) catanf(-12.3400 + i*-12.3400).imag = -0x1.4b908cp-5, not -0x1.4b908ep-5, diff 0x1.000000p-28, ratio 0.99999988
§ catanh genode: bad
(1.) catanh(0.9001 + i*0.1337).imag = 0x1.ffa9b4cf569c30p-2, not 0x1.ffa9b4cf569c40p-2, diff -0x1.00000000000000p-54, ratio 0.9999999999999999
§ catanhf genode: bad
(1.) catanhf(0.9001 + i*0.1337).imag = 0x1.ffa9b2p-2, not 0x1.ffa9b4p-2, diff -0x1.000000p-25, ratio 0.99999994
§ catanhl genode: bad
(8.) catanhl(-0.1234 + i*-0.1234).real = -0x1.f4393ca16167cfb60p-4, not -0x1.f4393ca16167cfb80p-4, diff 0x1.00000000000000000p-67, ratio 0.99999999999999999995
§ catanl genode: bad
(1.) catanl(90.0100 + i*13.3700).imag = 0x1.a736fce697febca20p-10, not 0x1.a736fce697febca40p-10, diff -0x1.00000000000000000p-73, ratio 0.99999999999999999995
§ ccos genode: bad
(1.) ccos(90.0100 + i*13.3700).real = -0x1.1dd75de1d01dd0p+17, not -0x1.1dd75de1d01de0p+17, diff 0x1.00000000000000p-35, ratio 0.9999999999999998
§ ccosf genode: bad
(7.) ccosf(90.0100 + i*-12.3400).real = -0x1.9830e8p+15, not -0x1.9830eap+15, diff 0x1.000000p-8, ratio 0.99999994
§ ccosh genode: bad
(8.) ccosh(-12.3400 + i*-12.3400).real = 0x1.b336186e1f30e0p+16, not 0x1.b336186e1f30f0p+16, diff -0x1.00000000000000p-36, ratio 0.9999999999999999
§ ccoshf genode: bad
(7.) ccoshf(90.0100 + i*-12.3400).imag = 0x1.a046d2p+126, not 0x1.a046d0p+126, diff 0x1.000000p+103, ratio 1.0000001
§ ccoshl genode: compile_error
§ ccosl genode: compile_error
§ cexp genode: bad
(2.) cexp(-12.3400 + i*13.3700).real = 0x1.976a4412644fa0p-19, not 0x1.976a4412644f90p-19, diff 0x1.00000000000000p-71, ratio 1
§ cexpf genode: bad
(2.) cexpf(-12.3400 + i*13.3700).imag = 0x1.a68c46p-19, not 0x1.a68c44p-19, diff 0x1.000000p-42, ratio 1.0000001
§ cexpl genode: compile_error
§ cimag genode: good
exit: 0
§ cimagf genode: good
exit: 0
§ cimagl genode: good
exit: 0
§ clog genode: bad
(1.) clog(90.0100 + i*13.3700).imag = 0x1.2dfff31e7d1cb0p-3, not 0x1.2dfff31e7d1ca0p-3, diff 0x1.00000000000000p-55, ratio 1
§ clogf genode: bad
(1.) clogf(90.0100 + i*13.3700).imag = 0x1.2dfff4p-3, not 0x1.2dfff2p-3, diff 0x1.000000p-26, ratio 1.0000001
§ clogl genode: bad
(1.) clogl(90.0100 + i*13.3700).imag = 0x1.2dfff31e7d1ca2840p-3, not 0x1.2dfff31e7d1ca2860p-3, diff -0x1.00000000000000000p-66, ratio 0.99999999999999999989
§ conj genode: good
exit: 0
§ conjf genode: good
exit: 0
§ conjl genode: good
exit: 0
§ cpow genode: bad
(1.) cpow(90.0100 + i*13.3700, 10.1000 + i*4.2000).real = -0x1.a7b744e0ecbee0p+58, not -0x1.a7b744e0ecfab0p+58, diff 0x1.de800000000000p+15, ratio 0.9999999999998717
§ cpowf genode: bad
(1.) cpowf(90.0100 + i*13.3700, 10.1000 + i*4.2000).real = -0x1.a7bb56p+58, not -0x1.a7b1d8p+58, diff -0x1.2fc000p+45, ratio 1.0000875
§ cpowl genode: bad
(1.) cpowl(90.0100 + i*13.3700, 10.1000 + i*4.2000).real = -0x1.a7b744e0ecfaaef60p+58, not -0x1.a7b744e0ecfaaebe0p+58, diff -0x1.c0000000000000000p-1, ratio 1.0000000000000000018
§ cproj genode: good
exit: 0
§ cprojf genode: good
exit: 0
§ cprojl genode: good
exit: 0
§ creal genode: good
exit: 0
§ crealf genode: good
exit: 0
§ creall genode: good
exit: 0
§ csin genode: bad
(1.) csin(90.0100 + i*13.3700).real = 0x1.162cfb9958c440p+18, not 0x1.162cfb9958c450p+18, diff -0x1.00000000000000p-34, ratio 0.9999999999999998
§ csinf genode: bad
(7.) csinf(90.0100 + i*-12.3400).imag = 0x1.9830e8p+15, not 0x1.9830eap+15, diff -0x1.000000p-8, ratio 0.99999994
§ csinh genode: bad
(2.) csinh(-12.3400 + i*13.3700).real = -0x1.35fcf761f8b400p+16, not -0x1.35fcf761f8b3f0p+16, diff -0x1.00000000000000p-36, ratio 1
§ csinhf genode: bad
(7.) csinhf(90.0100 + i*-12.3400).imag = 0x1.a046d2p+126, not 0x1.a046d0p+126, diff 0x1.000000p+103, ratio 1.0000001
§ csinhl genode: compile_error
§ csinl genode: compile_error
§ csqrt genode: bad
(1.) csqrt(90.0100 + i*13.3700).real = 0x1.306d57fd415a20p+3, not 0x1.306d57fd415a30p+3, diff -0x1.00000000000000p-49, ratio 0.9999999999999998
§ csqrtf genode: good
exit: 0
§ csqrtl genode: good
exit: 0
§ ctan genode: bad
(1.) ctan(90.0100 + i*13.3700).real = -0x1.16e5d0eb874870p-38, not -0x1.16e5d0eb874880p-38, diff 0x1.00000000000000p-90, ratio 0.9999999999999998
(33.) ctan(nan + i*0.0000).imag = nan, not 0x0.00000000000000p+0, diff nan, ratio nan
§ ctanf genode: bad
(1.) ctanf(90.0100 + i*13.3700).real = -0x1.16e60cp-38, not -0x1.16e60ep-38, diff 0x1.000000p-61, ratio 0.99999988
(33.) ctanf(nan + i*0.0000).imag = nan, not 0x0.000000p+0, diff nan, ratio nan
§ ctanh genode: bad
(7.) ctanh(90.0100 + i*-12.3400).imag = 0x1.111402b915a7e0p-260, not 0x1.111402b915a7f0p-260, diff -0x1.00000000000000p-312, ratio 0.9999999999999998
(18.) ctanh(0.0000 + i*nan).real = nan, not 0x0.00000000000000p+0, diff nan, ratio nan
§ ctanhf genode: bad
(2.) ctanhf(-12.3400 + i*13.3700).imag = 0x1.503c34p-35, not 0x1.503c32p-35, diff 0x1.000000p-58, ratio 1.0000001
(18.) ctanhf(0.0000 + i*nan).real = nan, not 0x0.000000p+0, diff nan, ratio nan
§ ctanhl genode: compile_error
§ ctanl genode: compile_error