musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/include/tgmath.h
AgeCommit message (Collapse)AuthorLines
2012年12月19日math: more correct tgmath.h type cast logic Szabolcs Nagy-32/+17
__IS_FP is a portable integer constant expression now (uses that unsigned long long is larger than float) the result casting logic should work now on all compilers supporting typeof
2012年12月19日math: new type cast logic in tgmath.h Szabolcs Nagy-25/+58
* return type logic is simplified a bit and fixed (see below) * return type of conj and cproj were wrong on int arguments * added comments about the pending issues (usually we don't have comments in public headers but this is not the biggest issue with tgmath.h) casting the result to the right type cannot be done in c99 (c11 _Generic can solve this but that is not widely supported), so the typeof extension of gcc is used and that the ?: operator has special semantics when one of the operands is a null pointer constant the standard is very strict about the definition of null pointer constants so typeof with ?: is still not enough so compiler specific workaround is used for now on gcc '!1.0' is a null pointer constant so we can use the old __IS_FP logic (eventhough it's non-standard) on clang (and on gcc as well) 'sizeof(void)-1' is a null pointer constant so we can use !(sizeof(*(0?(int*)0:(void*)__IS_FP(x)))-1) (this is non-standard as well), the old logic is used by default and this new one on clang
2012年12月14日fixed tgmath.h for functions with integral result Szabolcs Nagy-7/+9
in tgmath.h the return values are casted to the appropriate floating-point type (if the compiler supports gcc __typeof__), this is wrong in case of ilogb, lrint, llrint, lround, llround which do not need such cast
2012年05月28日math: fix nextafter definition in tgmath.h nsz-1/+1
2012年03月22日tgmath.h: suppress any existing macro definitions before defining macros Rich Felker-0/+63
this is necessary so that we can freely add macro versions of some of the math/complex functions without worrying about breaking tgmath.
2012年03月13日first commit of the new libm! Rich Felker-0/+187
thanks to the hard work of Szabolcs Nagy (nsz), identifying the best (from correctness and license standpoint) implementations from freebsd and openbsd and cleaning them up! musl should now fully support c99 float and long double math functions, and has near-complete complex math support. tgmath should also work (fully on gcc-compatible compilers, and mostly on any c99 compiler). based largely on commit 0376d44a890fea261506f1fc63833e7a686dca19 from nsz's libm git repo, with some additions (dummy versions of a few missing long double complex functions, etc.) by me. various cleanups still need to be made, including re-adding (if they're correct) some asm functions that were dropped.
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月11日 13:58:47 +0000

AltStyle によって変換されたページ (->オリジナル) /