This is asin.c in view mode; [Download] [Up]
#include <stdio.h> static double pid2= 1.5707963267948966192; double jv_asin(x) double x; { double y,y2,sum,jv_sqrt(); int sflag, yflag; if ( x < 0 ) { sflag = 1; x = -x; } else sflag = 0; if ( x > 0.5 ) { if ( x > 1.0 ) { if ( sflag ) x = -x; fprintf(stderr,"Argument out of range in asin: %f\n",x); exit(-1); } y = jv_sqrt(0.5*(1.-x)); yflag = 1; } else { y = x; yflag = 0; } y2 = y*y; sum = y * ( 1.00000000000000001365+y2*( 0.16666666666664838839+y2*( 0.07500000000404881646+y2*( 0.04464285679119552341+y2*( 0.03038196027237537659+y2*( 0.02237173658111094020+y2*( 0.01735997031086759961+y2*( 0.01388302431756389624+y2*( 0.01218170270685370993+y2*( 0.00648075111416853345+y2*( 0.01964268701248804731+y2*( -0.01638489913725409907+y2*( 0.03201166198466493988))))))))))))); if ( yflag ) sum = pid2 - 2.*sum; if ( sflag ) return(-sum); else return(sum); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.