UNPKG

trigfills

Version:

Sin, cos, tan, asin, acos and atan filled for cross browser consistency.

144 lines (124 loc) 7.29 kB
Precision tests: Input Mathres thisres difference tan -0.50 -0.5463024898437905 -0.5463024896693608 -1.7442969291181498e-10 -0.10 -0.10033467208545052 -0.10033467209667499 1.1224465801262795e-11 0.30 0.3093362496096233 0.30933624948285154 1.2677175975639443e-10 0.70 0.8422883804630795 0.8422883809685339 -5.05454345045564e-10 1.1 1.9647596572486523 1.9647596576084385 -3.5978620083199075e-10 1.5 14.101419947171719 14.101419946320501 8.512177629427242e-10 1.9 -2.9270975146777736 -2.927097514655147 -2.262678933107054e-11 2.3 -1.1192136417341325 -1.119213640846152 -8.87980577957137e-10 2.7 -0.47272762910303784 -0.47272762907567845 -2.7359392529291426e-11 3.1 -0.04161665458563635 -0.04161665458653091 8.945622020917199e-13 3.5 0.37458564015859414 0.37458564037483294 -2.1623880464005651e-10 rootsumsq diff: 4.2561770151960313e-10 max diff: 8.87980577957137e-10 sin -3.2 0.058374143427580086 0.05837414342785691 -2.768271722963789e-13 -2.8 -0.33498815015590466 -0.3349881502046081 4.870343017771006e-11 -2.4 -0.6754631805511506 -0.6754631804907938 -6.035683064453679e-11 -2.0 -0.9092974268256815 -0.909297427095367 2.6968549615702386e-10 -1.6 -0.9995736030415051 -0.9995736030415177 1.2545520178264269e-14 -1.2 -0.9320390859672266 -0.9320390861710387 2.0381207832542714e-10 -0.80 -0.7173560908995231 -0.717356091073902 1.7437884469728715e-10 -0.40 -0.389418342308651 -0.38941834237793216 6.928113638338118e-11 -5.6e-16 -5.551115123125783e-16 -8.881784197001252e-16 3.3306690738754696e-16 0.40 0.38941834230865 0.3894183423779313 -6.928130291683487e-11 0.80 0.7173560908995225 0.7173560910739011 -1.7437862265268222e-10 1.2 0.9320390859672262 0.932039086171038 -2.038118562808222e-10 1.6 0.9995736030415052 0.9995736030415177 -1.2434497875801753e-14 2.0 0.9092974268256819 0.9092974270953672 -2.6968527411241894e-10 2.4 0.6754631805511513 0.6754631804907945 6.035683064453679e-11 2.8 0.3349881501559055 0.3349881502046089 -4.870343017771006e-11 3.2 -0.0583741434275792 -0.05837414342785603 2.768341111902828e-13 rootsumsq diff: 1.3525244502883622e-10 max diff: 2.6968549615702386e-10 cos -3.2 -0.9982947757947531 -0.9982947757949538 2.007283228522283e-13 -2.8 -0.9422223406686583 -0.9422223408319242 1.6326595630999918e-10 -2.4 -0.7373937155412458 -0.7373937149297578 -6.114879713692289e-10 -2.0 -0.4161468365471428 -0.41614683662540186 7.825906589431497e-11 -1.6 -0.02919952230128926 -0.029199522301323912 3.46528361561127e-14 -1.2 0.362357754476673 0.36235775453578617 -5.911315881235168e-11 -0.80 0.6967067093471649 0.6967067093648869 -1.772193503057906e-11 -0.40 0.9210609940028849 0.9210609942442946 -2.414096700320556e-10 -5.6e-16 1 1 0 0.40 0.9210609940028853 0.921060994244295 -2.414096700320556e-10 0.80 0.6967067093471658 0.6967067093648879 -1.7722046052881524e-11 1.2 0.362357754476674 0.36235775453578717 -5.911315881235168e-11 1.6 -0.02919952230128837 -0.029199522301323024 3.46528361561127e-14 2.0 -0.41614683654714196 -0.4161468366254015 7.825950998352482e-11 2.4 -0.7373937155412451 -0.7373937149297571 -6.114879713692289e-10 2.8 -0.942222340668658 -0.9422223408319237 1.6326573426539426e-10 3.2 -0.9982947757947531 -0.9982947757949538 2.007283228522283e-13 rootsumsq diff: 2.3484285015522056e-10 max diff: 6.114879713692289e-10 acos -1.0 3.141592653589793 3.141592653589793 0 -0.80 2.498091544796509 2.4980915448053578 -8.848921595472348e-12 -0.60 2.2142974355881813 2.2142974355793323 8.848921595472348e-12 -0.40 1.9823131728623846 1.982313172868985 -6.600275881396556e-12 -0.20 1.7721542475852274 1.7721542475527203 3.250710811641966e-11 -5.6e-17 1.5707963267948968 1.5707963267948966 2.220446049250313e-16 0.20 1.369438406004566 1.369438406037073 -3.250710811641966e-11 0.40 1.1592794807274087 1.1592794807208082 6.600497926001481e-12 0.60 0.9272952180016123 0.9272952180104611 -8.848810573169885e-12 0.80 0.6435011087932843 0.6435011087844354 8.848810573169885e-12 1.0 0 0 0 rootsumsq diff: 1.5117010571302276e-11 max diff: 3.250710811641966e-11 asin -1.0 -1.5707963267948966 -1.5707963267948966 0 -0.80 -0.9272952180016123 -0.9272952180104611 8.848810573169885e-12 -0.60 -0.6435011087932845 -0.6435011087844357 -8.848810573169885e-12 -0.40 -0.4115168460674881 -0.41151684607408845 6.600331392547787e-12 -0.20 -0.20135792079033085 -0.2013579207578237 -3.250716362757089e-11 -5.6e-17 -5.551115123125783e-17 -5.551115123125783e-17 0 0.20 0.20135792079033074 0.20135792075782358 3.250716362757089e-11 0.40 0.411516846067488 0.41151684607408834 -6.600331392547787e-12 0.60 0.6435011087932844 0.6435011087844354 8.848921595472348e-12 0.80 0.9272952180016123 0.9272952180104611 -8.848810573169885e-12 1.0 1.5707963267948966 1.5707963267948966 0 rootsumsq diff: 1.511702195986241e-11 max diff: 3.250716362757089e-11 atan -3.1 -1.2587542052323633 -1.258754205210995 -2.1368240510355463e-11 -2.6 -1.2036224929766774 -1.2036224929512143 -2.546318711438289e-11 -2.1 -1.1263771168937977 -1.126377116892355 -1.4426237981979284e-12 -1.6 -1.0121970114513341 -1.0121970114513905 5.639932965095795e-14 -1.1 -0.8329812666744317 -0.8329812666916767 1.7244983219200094e-11 -0.60 -0.5404195002705843 -0.5404195002705794 -4.884981308350689e-15 -0.10 -0.09966865249116212 -0.0996686524872204 -3.941721948841348e-12 0.40 0.3805063771123648 0.3805063771307736 -1.8408830015914646e-11 0.90 0.7328151017865066 0.7328151017619298 2.4576785051522165e-11 1.4 0.9505468408120751 0.9505468408155182 -3.443134666269998e-12 1.9 1.0863183977578734 1.0863183977577888 8.459899447643693e-14 2.4 1.176005207095135 1.1760052070831253 1.2009726546580168e-11 2.9 1.2387368592520112 1.2387368592151167 3.689448746513335e-11 rootsumsq diff: 1.727646029280551e-11 max diff: 3.689448746513335e-11 relative speed Math.sin 0.30581 Mtest/s avg : 2.0000000000000004 this.sin 0.443033 Mtest/s avg : 1.9999999999999998 Math.sin 0.30581 Mtest/s avg : 2.0000000000000004 this.sin 0.457668 Mtest/s avg : 1.9999999999999998 Math.cos 0.305344 Mtest/s avg : 1.0000009996720263 this.cos 0.233443 Mtest/s avg : 1.0000009996720263 Math.cos 0.320512 Mtest/s avg : 1.0000009996720263 this.cos 0.228832 Mtest/s avg : 1.0000009996720263 Math.tan 0.291545 Mtest/s avg : -26.79720853590508 this.tan 0.225035 Mtest/s avg : -28.597034308117923 Math.tan 0.291545 Mtest/s avg : -26.79720853590508 this.tan 0.221238 Mtest/s avg : -28.597034308117923 Math.acos 0.305344 Mtest/s avg : 160.65028758521711 this.acos 0.130804 Mtest/s avg : 160.65028758521711 Math.acos 0.305344 Mtest/s avg : 160.65028758521711 this.acos 0.129547 Mtest/s avg : 160.65028758521711 Math.asin 0.074515 Mtest/s avg : 0.42934509456231107 this.asin 0.150851 Mtest/s avg : 0.42934509456230907 Math.asin 0.076335 Mtest/s avg : 0.42934509456231107 this.asin 0.152555 Mtest/s avg : 0.42934509456230907 Math.atan 0.075846 Mtest/s avg : 1.999999999999998 this.atan 0.2004 Mtest/s avg : 1.9999999999999993 Math.atan 0.074515 Mtest/s avg : 1.999999999999998 this.atan 0.2004 Mtest/s avg : 1.9999999999999993