sinl (and probably others) are not computed correctly. At least for large inputs.
Please consider the following simple testcase: $ cat sintest.c #include <stdio.h> #include <math.h> int main (void) { double arg = 1e22; long double larg = 1e22L; printf("double precision: sin(1e22) = %.16lf\n", sin(arg)); printf("quad precison: sin(1e22)=%.16Lf\n", sinl(larg)); return 0; } $gcc sintest.c $./a.out double precision: sin(1e22) = -0.8522008497671888 quad precison: sin(1e22)=0.4626130407646018 This behavior is demonstrated by gcc-4.4.3 and gcc-4.5 (current snapshot) I am using ubuntu on a 64 bit linux machine (intel). However, the same results were obtained on different machines. -- Summary: sinl is not computed correctly Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: critical Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: eli dot osherovich at gmail dot com GCC host triplet: x86_64-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43405