codekingpro/portable-devtools
114k
1// Copyright 2009 The Go Authors. All rights reserved.2// Use of this source code is governed by a BSD-style3// license that can be found in the LICENSE file.4 5package math_test6 7import (8 "fmt"9 . "math"10 "testing"11 "unsafe"12)13 14var vf = []float64{15 4.9790119248836735e+00,16 7.7388724745781045e+00,17 -2.7688005719200159e-01,18 -5.0106036182710749e+00,19 9.6362937071984173e+00,20 2.9263772392439646e+00,21 5.2290834314593066e+00,22 2.7279399104360102e+00,23 1.8253080916808550e+00,24 -8.6859247685756013e+00,25}26 27// The expected results below were computed by the high precision calculators28// at https://keisan.casio.com/. More exact input values (array vf[], above)29// were obtained by printing them with "%.26f". The answers were calculated30// to 26 digits (by using the "Digit number" drop-down control of each31// calculator).32var acos = []float64{33 1.0496193546107222142571536e+00,34 6.8584012813664425171660692e-01,35 1.5984878714577160325521819e+00,36 2.0956199361475859327461799e+00,37 2.7053008467824138592616927e-01,38 1.2738121680361776018155625e+00,39 1.0205369421140629186287407e+00,40 1.2945003481781246062157835e+00,41 1.3872364345374451433846657e+00,42 2.6231510803970463967294145e+00,43}44var acosh = []float64{45 2.4743347004159012494457618e+00,46 2.8576385344292769649802701e+00,47 7.2796961502981066190593175e-01,48 2.4796794418831451156471977e+00,49 3.0552020742306061857212962e+00,50 2.044238592688586588942468e+00,51 2.5158701513104513595766636e+00,52 1.99050839282411638174299e+00,53 1.6988625798424034227205445e+00,54 2.9611454842470387925531875e+00,55}56var asin = []float64{57 5.2117697218417440497416805e-01,58 8.8495619865825236751471477e-01,59 -02.769154466281941332086016e-02,60 -5.2482360935268931351485822e-01,61 1.3002662421166552333051524e+00,62 2.9698415875871901741575922e-01,63 5.5025938468083370060258102e-01,64 2.7629597861677201301553823e-01,65 1.83559892257451475846656e-01,66 -1.0523547536021497774980928e+00,67}68var asinh = []float64{69 2.3083139124923523427628243e+00,70 2.743551594301593620039021e+00,71 -2.7345908534880091229413487e-01,72 -2.3145157644718338650499085e+00,73 2.9613652154015058521951083e+00,74 1.7949041616585821933067568e+00,75 2.3564032905983506405561554e+00,76 1.7287118790768438878045346e+00,77 1.3626658083714826013073193e+00,78 -2.8581483626513914445234004e+00,79}80var atan = []float64{81 1.372590262129621651920085e+00,82 1.442290609645298083020664e+00,83 -2.7011324359471758245192595e-01,84 -1.3738077684543379452781531e+00,85 1.4673921193587666049154681e+00,86 1.2415173565870168649117764e+00,87 1.3818396865615168979966498e+00,88 1.2194305844639670701091426e+00,89 1.0696031952318783760193244e+00,90 -1.4561721938838084990898679e+00,91}92var atanh = []float64{93 5.4651163712251938116878204e-01,94 1.0299474112843111224914709e+00,95 -2.7695084420740135145234906e-02,96 -5.5072096119207195480202529e-01,97 1.9943940993171843235906642e+00,98 3.01448604578089708203017e-01,99 5.8033427206942188834370595e-01,100 2.7987997499441511013958297e-01,101 1.8459947964298794318714228e-01,102 -1.3273186910532645867272502e+00,103}104var atan2 = []float64{105 1.1088291730037004444527075e+00,106 9.1218183188715804018797795e-01,107 1.5984772603216203736068915e+00,108 2.0352918654092086637227327e+00,109 8.0391819139044720267356014e-01,110 1.2861075249894661588866752e+00,111 1.0889904479131695712182587e+00,112 1.3044821793397925293797357e+00,113 1.3902530903455392306872261e+00,114 2.2859857424479142655411058e+00,115}116var cbrt = []float64{117 1.7075799841925094446722675e+00,118 1.9779982212970353936691498e+00,119 -6.5177429017779910853339447e-01,120 -1.7111838886544019873338113e+00,121 2.1279920909827937423960472e+00,122 1.4303536770460741452312367e+00,123 1.7357021059106154902341052e+00,124 1.3972633462554328350552916e+00,125 1.2221149580905388454977636e+00,126 -2.0556003730500069110343596e+00,127}128var ceil = []float64{129 5.0000000000000000e+00,130 8.0000000000000000e+00,131 Copysign(0, -1),132 -5.0000000000000000e+00,133 1.0000000000000000e+01,134 3.0000000000000000e+00,135 6.0000000000000000e+00,136 3.0000000000000000e+00,137 2.0000000000000000e+00,138 -8.0000000000000000e+00,139}140var copysign = []float64{141 -4.9790119248836735e+00,142 -7.7388724745781045e+00,143 -2.7688005719200159e-01,144 -5.0106036182710749e+00,145 -9.6362937071984173e+00,146 -2.9263772392439646e+00,147 -5.2290834314593066e+00,148 -2.7279399104360102e+00,149 -1.8253080916808550e+00,150 -8.6859247685756013e+00,151}152var cos = []float64{153 2.634752140995199110787593e-01,154 1.148551260848219865642039e-01,155 9.6191297325640768154550453e-01,156 2.938141150061714816890637e-01,157 -9.777138189897924126294461e-01,158 -9.7693041344303219127199518e-01,159 4.940088096948647263961162e-01,160 -9.1565869021018925545016502e-01,161 -2.517729313893103197176091e-01,162 -7.39241351595676573201918e-01,163}164 165// Results for 100000 * Pi + vf[i]166var cosLarge = []float64{167 2.634752141185559426744e-01,168 1.14855126055543100712e-01,169 9.61912973266488928113e-01,170 2.9381411499556122552e-01,171 -9.777138189880161924641e-01,172 -9.76930413445147608049e-01,173 4.940088097314976789841e-01,174 -9.15658690217517835002e-01,175 -2.51772931436786954751e-01,176 -7.3924135157173099849e-01,177}178 179var cosh = []float64{180 7.2668796942212842775517446e+01,181 1.1479413465659254502011135e+03,182 1.0385767908766418550935495e+00,183 7.5000957789658051428857788e+01,184 7.655246669605357888468613e+03,185 9.3567491758321272072888257e+00,186 9.331351599270605471131735e+01,187 7.6833430994624643209296404e+00,188 3.1829371625150718153881164e+00,189 2.9595059261916188501640911e+03,190}191var erf = []float64{192 5.1865354817738701906913566e-01,193 7.2623875834137295116929844e-01,194 -3.123458688281309990629839e-02,195 -5.2143121110253302920437013e-01,196 8.2704742671312902508629582e-01,197 3.2101767558376376743993945e-01,198 5.403990312223245516066252e-01,199 3.0034702916738588551174831e-01,200 2.0369924417882241241559589e-01,201 -7.8069386968009226729944677e-01,202}203var erfc = []float64{204 4.8134645182261298093086434e-01,205 2.7376124165862704883070156e-01,206 1.0312345868828130999062984e+00,207 1.5214312111025330292043701e+00,208 1.7295257328687097491370418e-01,209 6.7898232441623623256006055e-01,210 4.596009687776754483933748e-01,211 6.9965297083261411448825169e-01,212 7.9630075582117758758440411e-01,213 1.7806938696800922672994468e+00,214}215var erfinv = []float64{216 4.746037673358033586786350696e-01,217 8.559054432692110956388764172e-01,218 -2.45427830571707336251331946e-02,219 -4.78116683518973366268905506e-01,220 1.479804430319470983648120853e+00,221 2.654485787128896161882650211e-01,222 5.027444534221520197823192493e-01,223 2.466703532707627818954585670e-01,224 1.632011465103005426240343116e-01,225 -1.06672334642196900710000389e+00,226}227var exp = []float64{228 1.4533071302642137507696589e+02,229 2.2958822575694449002537581e+03,230 7.5814542574851666582042306e-01,231 6.6668778421791005061482264e-03,232 1.5310493273896033740861206e+04,233 1.8659907517999328638667732e+01,234 1.8662167355098714543942057e+02,235 1.5301332413189378961665788e+01,236 6.2047063430646876349125085e+00,237 1.6894712385826521111610438e-04,238}239var expm1 = []float64{240 5.105047796122957327384770212e-02,241 8.046199708567344080562675439e-02,242 -2.764970978891639815187418703e-03,243 -4.8871434888875355394330300273e-02,244 1.0115864277221467777117227494e-01,245 2.969616407795910726014621657e-02,246 5.368214487944892300914037972e-02,247 2.765488851131274068067445335e-02,248 1.842068661871398836913874273e-02,249 -8.3193870863553801814961137573e-02,250}251var expm1Large = []float64{252 4.2031418113550844e+21,253 4.0690789717473863e+33,254 -0.9372627915981363e+00,255 -1.0,256 7.077694784145933e+41,257 5.117936223839153e+12,258 5.124137759001189e+22,259 7.03546003972584e+11,260 8.456921800389698e+07,261 -1.0,262}263var exp2 = []float64{264 3.1537839463286288034313104e+01,265 2.1361549283756232296144849e+02,266 8.2537402562185562902577219e-01,267 3.1021158628740294833424229e-02,268 7.9581744110252191462569661e+02,269 7.6019905892596359262696423e+00,270 3.7506882048388096973183084e+01,271 6.6250893439173561733216375e+00,272 3.5438267900243941544605339e+00,273 2.4281533133513300984289196e-03,274}275var fabs = []float64{276 4.9790119248836735e+00,277 7.7388724745781045e+00,278 2.7688005719200159e-01,279 5.0106036182710749e+00,280 9.6362937071984173e+00,281 2.9263772392439646e+00,282 5.2290834314593066e+00,283 2.7279399104360102e+00,284 1.8253080916808550e+00,285 8.6859247685756013e+00,286}287var fdim = []float64{288 4.9790119248836735e+00,289 7.7388724745781045e+00,290 0.0000000000000000e+00,291 0.0000000000000000e+00,292 9.6362937071984173e+00,293 2.9263772392439646e+00,294 5.2290834314593066e+00,295 2.7279399104360102e+00,296 1.8253080916808550e+00,297 0.0000000000000000e+00,298}299var floor = []float64{300 4.0000000000000000e+00,301 7.0000000000000000e+00,302 -1.0000000000000000e+00,303 -6.0000000000000000e+00,304 9.0000000000000000e+00,305 2.0000000000000000e+00,306 5.0000000000000000e+00,307 2.0000000000000000e+00,308 1.0000000000000000e+00,309 -9.0000000000000000e+00,310}311var fmod = []float64{312 4.197615023265299782906368e-02,313 2.261127525421895434476482e+00,314 3.231794108794261433104108e-02,315 4.989396381728925078391512e+00,316 3.637062928015826201999516e-01,317 1.220868282268106064236690e+00,318 4.770916568540693347699744e+00,319 1.816180268691969246219742e+00,320 8.734595415957246977711748e-01,321 1.314075231424398637614104e+00,322}323 324type fi struct {325 f float64326 i int327}328 329var frexp = []fi{330 {6.2237649061045918750e-01, 3},331 {9.6735905932226306250e-01, 3},332 {-5.5376011438400318000e-01, -1},333 {-6.2632545228388436250e-01, 3},334 {6.02268356699901081250e-01, 4},335 {7.3159430981099115000e-01, 2},336 {6.5363542893241332500e-01, 3},337 {6.8198497760900255000e-01, 2},338 {9.1265404584042750000e-01, 1},339 {-5.4287029803597508250e-01, 4},340}341var gamma = []float64{342 2.3254348370739963835386613898e+01,343 2.991153837155317076427529816e+03,344 -4.561154336726758060575129109e+00,345 7.719403468842639065959210984e-01,346 1.6111876618855418534325755566e+05,347 1.8706575145216421164173224946e+00,348 3.4082787447257502836734201635e+01,349 1.579733951448952054898583387e+00,350 9.3834586598354592860187267089e-01,351 -2.093995902923148389186189429e-05,352}353var j0 = []float64{354 -1.8444682230601672018219338e-01,355 2.27353668906331975435892e-01,356 9.809259936157051116270273e-01,357 -1.741170131426226587841181e-01,358 -2.1389448451144143352039069e-01,359 -2.340905848928038763337414e-01,360 -1.0029099691890912094586326e-01,361 -1.5466726714884328135358907e-01,362 3.252650187653420388714693e-01,363 -8.72218484409407250005360235e-03,364}365var j1 = []float64{366 -3.251526395295203422162967e-01,367 1.893581711430515718062564e-01,368 -1.3711761352467242914491514e-01,369 3.287486536269617297529617e-01,370 1.3133899188830978473849215e-01,371 3.660243417832986825301766e-01,372 -3.4436769271848174665420672e-01,373 4.329481396640773768835036e-01,374 5.8181350531954794639333955e-01,375 -2.7030574577733036112996607e-01,376}377var j2 = []float64{378 5.3837518920137802565192769e-02,379 -1.7841678003393207281244667e-01,380 9.521746934916464142495821e-03,381 4.28958355470987397983072e-02,382 2.4115371837854494725492872e-01,383 4.842458532394520316844449e-01,384 -3.142145220618633390125946e-02,385 4.720849184745124761189957e-01,386 3.122312022520957042957497e-01,387 7.096213118930231185707277e-02,388}389var jM3 = []float64{390 -3.684042080996403091021151e-01,391 2.8157665936340887268092661e-01,392 4.401005480841948348343589e-04,393 3.629926999056814081597135e-01,394 3.123672198825455192489266e-02,395 -2.958805510589623607540455e-01,396 -3.2033177696533233403289416e-01,397 -2.592737332129663376736604e-01,398 -1.0241334641061485092351251e-01,399 -2.3762660886100206491674503e-01,400}401var lgamma = []fi{402 {3.146492141244545774319734e+00, 1},403 {8.003414490659126375852113e+00, 1},404 {1.517575735509779707488106e+00, -1},405 {-2.588480028182145853558748e-01, 1},406 {1.1989897050205555002007985e+01, 1},407 {6.262899811091257519386906e-01, 1},408 {3.5287924899091566764846037e+00, 1},409 {4.5725644770161182299423372e-01, 1},410 {-6.363667087767961257654854e-02, 1},411 {-1.077385130910300066425564e+01, -1},412}413var log = []float64{414 1.605231462693062999102599e+00,415 2.0462560018708770653153909e+00,416 -1.2841708730962657801275038e+00,417 1.6115563905281545116286206e+00,418 2.2655365644872016636317461e+00,419 1.0737652208918379856272735e+00,420 1.6542360106073546632707956e+00,421 1.0035467127723465801264487e+00,422 6.0174879014578057187016475e-01,423 2.161703872847352815363655e+00,424}425var logb = []float64{426 2.0000000000000000e+00,427 2.0000000000000000e+00,428 -2.0000000000000000e+00,429 2.0000000000000000e+00,430 3.0000000000000000e+00,431 1.0000000000000000e+00,432 2.0000000000000000e+00,433 1.0000000000000000e+00,434 0.0000000000000000e+00,435 3.0000000000000000e+00,436}437var log10 = []float64{438 6.9714316642508290997617083e-01,439 8.886776901739320576279124e-01,440 -5.5770832400658929815908236e-01,441 6.998900476822994346229723e-01,442 9.8391002850684232013281033e-01,443 4.6633031029295153334285302e-01,444 7.1842557117242328821552533e-01,445 4.3583479968917773161304553e-01,446 2.6133617905227038228626834e-01,447 9.3881606348649405716214241e-01,448}449var log1p = []float64{450 4.8590257759797794104158205e-02,451 7.4540265965225865330849141e-02,452 -2.7726407903942672823234024e-03,453 -5.1404917651627649094953380e-02,454 9.1998280672258624681335010e-02,455 2.8843762576593352865894824e-02,456 5.0969534581863707268992645e-02,457 2.6913947602193238458458594e-02,458 1.8088493239630770262045333e-02,459 -9.0865245631588989681559268e-02,460}461var log2 = []float64{462 2.3158594707062190618898251e+00,463 2.9521233862883917703341018e+00,464 -1.8526669502700329984917062e+00,465 2.3249844127278861543568029e+00,466 3.268478366538305087466309e+00,467 1.5491157592596970278166492e+00,468 2.3865580889631732407886495e+00,469 1.447811865817085365540347e+00,470 8.6813999540425116282815557e-01,471 3.118679457227342224364709e+00,472}473var modf = [][2]float64{474 {4.0000000000000000e+00, 9.7901192488367350108546816e-01},475 {7.0000000000000000e+00, 7.3887247457810456552351752e-01},476 {Copysign(0, -1), -2.7688005719200159404635997e-01},477 {-5.0000000000000000e+00, -1.060361827107492160848778e-02},478 {9.0000000000000000e+00, 6.3629370719841737980004837e-01},479 {2.0000000000000000e+00, 9.2637723924396464525443662e-01},480 {5.0000000000000000e+00, 2.2908343145930665230025625e-01},481 {2.0000000000000000e+00, 7.2793991043601025126008608e-01},482 {1.0000000000000000e+00, 8.2530809168085506044576505e-01},483 {-8.0000000000000000e+00, -6.8592476857560136238589621e-01},484}485var nextafter32 = []float32{486 4.979012489318848e+00,487 7.738873004913330e+00,488 -2.768800258636475e-01,489 -5.010602951049805e+00,490 9.636294364929199e+00,491 2.926377534866333e+00,492 5.229084014892578e+00,493 2.727940082550049e+00,494 1.825308203697205e+00,495 -8.685923576354980e+00,496}497var nextafter64 = []float64{498 4.97901192488367438926388786e+00,499 7.73887247457810545370193722e+00,500 -2.7688005719200153853520874e-01,501 -5.01060361827107403343006808e+00,502 9.63629370719841915615688777e+00,503 2.92637723924396508934364647e+00,504 5.22908343145930754047867595e+00,505 2.72793991043601069534929593e+00,506 1.82530809168085528249036997e+00,507 -8.68592476857559958602905681e+00,508}509var pow = []float64{510 9.5282232631648411840742957e+04,511 5.4811599352999901232411871e+07,512 5.2859121715894396531132279e-01,513 9.7587991957286474464259698e-06,514 4.328064329346044846740467e+09,515 8.4406761805034547437659092e+02,516 1.6946633276191194947742146e+05,517 5.3449040147551939075312879e+02,518 6.688182138451414936380374e+01,519 2.0609869004248742886827439e-09,520}521var remainder = []float64{522 4.197615023265299782906368e-02,523 2.261127525421895434476482e+00,524 3.231794108794261433104108e-02,525 -2.120723654214984321697556e-02,526 3.637062928015826201999516e-01,527 1.220868282268106064236690e+00,528 -4.581668629186133046005125e-01,529 -9.117596417440410050403443e-01,530 8.734595415957246977711748e-01,531 1.314075231424398637614104e+00,532}533var round = []float64{534 5,535 8,536 Copysign(0, -1),537 -5,538 10,539 3,540 5,541 3,542 2,543 -9,544}545var signbit = []bool{546 false,547 false,548 true,549 true,550 false,551 false,552 false,553 false,554 false,555 true,556}557var sin = []float64{558 -9.6466616586009283766724726e-01,559 9.9338225271646545763467022e-01,560 -2.7335587039794393342449301e-01,561 9.5586257685042792878173752e-01,562 -2.099421066779969164496634e-01,563 2.135578780799860532750616e-01,564 -8.694568971167362743327708e-01,565 4.019566681155577786649878e-01,566 9.6778633541687993721617774e-01,567 -6.734405869050344734943028e-01,568}569 570// Results for 100000 * Pi + vf[i]571var sinLarge = []float64{572 -9.646661658548936063912e-01,573 9.933822527198506903752e-01,574 -2.7335587036246899796e-01,575 9.55862576853689321268e-01,576 -2.099421066862688873691e-01,577 2.13557878070308981163e-01,578 -8.694568970959221300497e-01,579 4.01956668098863248917e-01,580 9.67786335404528727927e-01,581 -6.7344058693131973066e-01,582}583var sinh = []float64{584 7.2661916084208532301448439e+01,585 1.1479409110035194500526446e+03,586 -2.8043136512812518927312641e-01,587 -7.499429091181587232835164e+01,588 7.6552466042906758523925934e+03,589 9.3031583421672014313789064e+00,590 9.330815755828109072810322e+01,591 7.6179893137269146407361477e+00,592 3.021769180549615819524392e+00,593 -2.95950575724449499189888e+03,594}595var sqrt = []float64{596 2.2313699659365484748756904e+00,597 2.7818829009464263511285458e+00,598 5.2619393496314796848143251e-01,599 2.2384377628763938724244104e+00,600 3.1042380236055381099288487e+00,601 1.7106657298385224403917771e+00,602 2.286718922705479046148059e+00,603 1.6516476350711159636222979e+00,604 1.3510396336454586262419247e+00,605 2.9471892997524949215723329e+00,606}607var tan = []float64{608 -3.661316565040227801781974e+00,609 8.64900232648597589369854e+00,610 -2.8417941955033612725238097e-01,611 3.253290185974728640827156e+00,612 2.147275640380293804770778e-01,613 -2.18600910711067004921551e-01,614 -1.760002817872367935518928e+00,615 -4.389808914752818126249079e-01,616 -3.843885560201130679995041e+00,617 9.10988793377685105753416e-01,618}619 620// Results for 100000 * Pi + vf[i]621var tanLarge = []float64{622 -3.66131656475596512705e+00,623 8.6490023287202547927e+00,624 -2.841794195104782406e-01,625 3.2532901861033120983e+00,626 2.14727564046880001365e-01,627 -2.18600910700688062874e-01,628 -1.760002817699722747043e+00,629 -4.38980891453536115952e-01,630 -3.84388555942723509071e+00,631 9.1098879344275101051e-01,632}633var tanh = []float64{634 9.9990531206936338549262119e-01,635 9.9999962057085294197613294e-01,636 -2.7001505097318677233756845e-01,637 -9.9991110943061718603541401e-01,638 9.9999999146798465745022007e-01,639 9.9427249436125236705001048e-01,640 9.9994257600983138572705076e-01,641 9.9149409509772875982054701e-01,642 9.4936501296239685514466577e-01,643 -9.9999994291374030946055701e-01,644}645var trunc = []float64{646 4.0000000000000000e+00,647 7.0000000000000000e+00,648 Copysign(0, -1),649 -5.0000000000000000e+00,650 9.0000000000000000e+00,651 2.0000000000000000e+00,652 5.0000000000000000e+00,653 2.0000000000000000e+00,654 1.0000000000000000e+00,655 -8.0000000000000000e+00,656}657var y0 = []float64{658 -3.053399153780788357534855e-01,659 1.7437227649515231515503649e-01,660 -8.6221781263678836910392572e-01,661 -3.100664880987498407872839e-01,662 1.422200649300982280645377e-01,663 4.000004067997901144239363e-01,664 -3.3340749753099352392332536e-01,665 4.5399790746668954555205502e-01,666 4.8290004112497761007536522e-01,667 2.7036697826604756229601611e-01,668}669var y1 = []float64{670 0.15494213737457922210218611,671 -0.2165955142081145245075746,672 -2.4644949631241895201032829,673 0.1442740489541836405154505,674 0.2215379960518984777080163,675 0.3038800915160754150565448,676 0.0691107642452362383808547,677 0.2380116417809914424860165,678 -0.20849492979459761009678934,679 0.0242503179793232308250804,680}681var y2 = []float64{682 0.3675780219390303613394936,683 -0.23034826393250119879267257,684 -16.939677983817727205631397,685 0.367653980523052152867791,686 -0.0962401471767804440353136,687 -0.1923169356184851105200523,688 0.35984072054267882391843766,689 -0.2794987252299739821654982,690 -0.7113490692587462579757954,691 -0.2647831587821263302087457,692}693var yM3 = []float64{694 -0.14035984421094849100895341,695 -0.097535139617792072703973,696 242.25775994555580176377379,697 -0.1492267014802818619511046,698 0.26148702629155918694500469,699 0.56675383593895176530394248,700 -0.206150264009006981070575,701 0.64784284687568332737963658,702 1.3503631555901938037008443,703 0.1461869756579956803341844,704}705 706// arguments and expected results for special cases707var vfacosSC = []float64{708 -Pi,709 1,710 Pi,711 NaN(),712}713var acosSC = []float64{714 NaN(),715 0,716 NaN(),717 NaN(),718}719 720var vfacoshSC = []float64{721 Inf(-1),722 0.5,723 1,724 Inf(1),725 NaN(),726}727var acoshSC = []float64{728 NaN(),729 NaN(),730 0,731 Inf(1),732 NaN(),733}734 735var vfasinSC = []float64{736 -Pi,737 Copysign(0, -1),738 0,739 Pi,740 NaN(),741}742var asinSC = []float64{743 NaN(),744 Copysign(0, -1),745 0,746 NaN(),747 NaN(),748}749 750var vfasinhSC = []float64{751 Inf(-1),752 Copysign(0, -1),753 0,754 Inf(1),755 NaN(),756}757var asinhSC = []float64{758 Inf(-1),759 Copysign(0, -1),760 0,761 Inf(1),762 NaN(),763}764 765var vfatanSC = []float64{766 Inf(-1),767 Copysign(0, -1),768 0,769 Inf(1),770 NaN(),771}772var atanSC = []float64{773 -Pi / 2,774 Copysign(0, -1),775 0,776 Pi / 2,777 NaN(),778}779 780var vfatanhSC = []float64{781 Inf(-1),782 -Pi,783 -1,784 Copysign(0, -1),785 0,786 1,787 Pi,788 Inf(1),789 NaN(),790}791var atanhSC = []float64{792 NaN(),793 NaN(),794 Inf(-1),795 Copysign(0, -1),796 0,797 Inf(1),798 NaN(),799 NaN(),800 NaN(),801}802var vfatan2SC = [][2]float64{803 {Inf(-1), Inf(-1)},804 {Inf(-1), -Pi},805 {Inf(-1), 0},806 {Inf(-1), +Pi},807 {Inf(-1), Inf(1)},808 {Inf(-1), NaN()},809 {-Pi, Inf(-1)},810 {-Pi, 0},811 {-Pi, Inf(1)},812 {-Pi, NaN()},813 {Copysign(0, -1), Inf(-1)},814 {Copysign(0, -1), -Pi},815 {Copysign(0, -1), Copysign(0, -1)},816 {Copysign(0, -1), 0},817 {Copysign(0, -1), +Pi},818 {Copysign(0, -1), Inf(1)},819 {Copysign(0, -1), NaN()},820 {0, Inf(-1)},821 {0, -Pi},822 {0, Copysign(0, -1)},823 {0, 0},824 {0, +Pi},825 {0, Inf(1)},826 {0, NaN()},827 {+Pi, Inf(-1)},828 {+Pi, 0},829 {+Pi, Inf(1)},830 {1.0, Inf(1)},831 {-1.0, Inf(1)},832 {+Pi, NaN()},833 {Inf(1), Inf(-1)},834 {Inf(1), -Pi},835 {Inf(1), 0},836 {Inf(1), +Pi},837 {Inf(1), Inf(1)},838 {Inf(1), NaN()},839 {NaN(), NaN()},840}841var atan2SC = []float64{842 -3 * Pi / 4, // atan2(-Inf, -Inf)843 -Pi / 2, // atan2(-Inf, -Pi)844 -Pi / 2, // atan2(-Inf, +0)845 -Pi / 2, // atan2(-Inf, +Pi)846 -Pi / 4, // atan2(-Inf, +Inf)847 NaN(), // atan2(-Inf, NaN)848 -Pi, // atan2(-Pi, -Inf)849 -Pi / 2, // atan2(-Pi, +0)850 Copysign(0, -1), // atan2(-Pi, Inf)851 NaN(), // atan2(-Pi, NaN)852 -Pi, // atan2(-0, -Inf)853 -Pi, // atan2(-0, -Pi)854 -Pi, // atan2(-0, -0)855 Copysign(0, -1), // atan2(-0, +0)856 Copysign(0, -1), // atan2(-0, +Pi)857 Copysign(0, -1), // atan2(-0, +Inf)858 NaN(), // atan2(-0, NaN)859 Pi, // atan2(+0, -Inf)860 Pi, // atan2(+0, -Pi)861 Pi, // atan2(+0, -0)862 0, // atan2(+0, +0)863 0, // atan2(+0, +Pi)864 0, // atan2(+0, +Inf)865 NaN(), // atan2(+0, NaN)866 Pi, // atan2(+Pi, -Inf)867 Pi / 2, // atan2(+Pi, +0)868 0, // atan2(+Pi, +Inf)869 0, // atan2(+1, +Inf)870 Copysign(0, -1), // atan2(-1, +Inf)871 NaN(), // atan2(+Pi, NaN)872 3 * Pi / 4, // atan2(+Inf, -Inf)873 Pi / 2, // atan2(+Inf, -Pi)874 Pi / 2, // atan2(+Inf, +0)875 Pi / 2, // atan2(+Inf, +Pi)876 Pi / 4, // atan2(+Inf, +Inf)877 NaN(), // atan2(+Inf, NaN)878 NaN(), // atan2(NaN, NaN)879}880 881var vfcbrtSC = []float64{882 Inf(-1),883 Copysign(0, -1),884 0,885 Inf(1),886 NaN(),887}888var cbrtSC = []float64{889 Inf(-1),890 Copysign(0, -1),891 0,892 Inf(1),893 NaN(),894}895 896var vfceilSC = []float64{897 Inf(-1),898 Copysign(0, -1),899 0,900 Inf(1),901 NaN(),902 1<<52 - 1,903 1<<52 - 0.5, // largest fractional float64904 1 << 52,905 -1 << 52,906 -1<<52 + 0.5, // smallest fractional float64907 -1<<52 + 1,908 1 << 53,909 -1 << 53,910}911 912var ceilBaseSC = []float64{913 Inf(-1),914 Copysign(0, -1),915 0,916 Inf(1),917 NaN(),918}919 920var ceilSC = append(ceilBaseSC,921 1<<52-1,922 1<<52,923 1<<52,924 -1<<52,925 -1<<52+1,926 -1<<52+1,927 1<<53,928 -1<<53,929)930 931var floorSC = append(ceilBaseSC,932 1<<52-1,933 1<<52-1,934 1<<52,935 -1<<52,936 -1<<52,937 -1<<52+1,938 1<<53,939 -1<<53,940)941 942var truncSC = append(ceilBaseSC,943 1<<52-1,944 1<<52-1,945 1<<52,946 -1<<52,947 -1<<52+1,948 -1<<52+1,949 1<<53,950 -1<<53,951)952 953var vfcopysignSC = []float64{954 Inf(-1),955 Inf(1),956 NaN(),957}958var copysignSC = []float64{959 Inf(-1),960 Inf(-1),961 NaN(),962}963 964var vfcosSC = []float64{965 Inf(-1),966 Inf(1),967 NaN(),968}969var cosSC = []float64{970 NaN(),971 NaN(),972 NaN(),973}974 975var vfcoshSC = []float64{976 Inf(-1),977 Copysign(0, -1),978 0,979 Inf(1),980 NaN(),981}982var coshSC = []float64{983 Inf(1),984 1,985 1,986 Inf(1),987 NaN(),988}989 990var vferfSC = []float64{991 Inf(-1),992 Copysign(0, -1),993 0,994 Inf(1),995 NaN(),996 -1000,997 1000,998}999var erfSC = []float64{1000 -1,1001 Copysign(0, -1),1002 0,1003 1,1004 NaN(),1005 -1,1006 1,1007}1008 1009var vferfcSC = []float64{1010 Inf(-1),1011 Inf(1),1012 NaN(),1013 -1000,1014 1000,1015}1016var erfcSC = []float64{1017 2,1018 0,1019 NaN(),1020 2,1021 0,1022}1023 1024var vferfinvSC = []float64{1025 1,1026 -1,1027 0,1028 Inf(-1),1029 Inf(1),1030 NaN(),1031}1032var erfinvSC = []float64{1033 Inf(+1),1034 Inf(-1),1035 0,1036 NaN(),1037 NaN(),1038 NaN(),1039}1040 1041var vferfcinvSC = []float64{1042 0,1043 2,1044 1,1045 Inf(1),1046 Inf(-1),1047 NaN(),1048}1049var erfcinvSC = []float64{1050 Inf(+1),1051 Inf(-1),1052 0,1053 NaN(),1054 NaN(),1055 NaN(),1056}1057 1058var vfexpSC = []float64{1059 Inf(-1),1060 -2000,1061 2000,1062 Inf(1),1063 NaN(),1064 // smallest float64 that overflows Exp(x)1065 7.097827128933841e+02,1066 // Issue 189121067 1.48852223e+09,1068 1.4885222e+09,1069 1,1070 // near zero1071 3.725290298461915e-09,1072 // denormal1073 -740,1074}1075var expSC = []float64{1076 0,1077 0,1078 Inf(1),1079 Inf(1),1080 NaN(),1081 Inf(1),1082 Inf(1),1083 Inf(1),1084 2.718281828459045,1085 1.0000000037252903,1086 4.2e-322,1087}1088 1089var vfexp2SC = []float64{1090 Inf(-1),1091 -2000,1092 2000,1093 Inf(1),1094 NaN(),1095 // smallest float64 that overflows Exp2(x)1096 1024,1097 // near underflow1098 -1.07399999999999e+03,1099 // near zero1100 3.725290298461915e-09,1101}1102var exp2SC = []float64{1103 0,1104 0,1105 Inf(1),1106 Inf(1),1107 NaN(),1108 Inf(1),1109 5e-324,1110 1.0000000025821745,1111}1112 1113var vfexpm1SC = []float64{1114 Inf(-1),1115 -710,1116 Copysign(0, -1),1117 0,1118 710,1119 Inf(1),1120 NaN(),1121}1122var expm1SC = []float64{1123 -1,1124 -1,1125 Copysign(0, -1),1126 0,1127 Inf(1),1128 Inf(1),1129 NaN(),1130}1131 1132var vffabsSC = []float64{1133 Inf(-1),1134 Copysign(0, -1),1135 0,1136 Inf(1),1137 NaN(),1138}1139var fabsSC = []float64{1140 Inf(1),1141 0,1142 0,1143 Inf(1),1144 NaN(),1145}1146 1147var vffdimSC = [][2]float64{1148 {Inf(-1), Inf(-1)},1149 {Inf(-1), Inf(1)},1150 {Inf(-1), NaN()},1151 {Copysign(0, -1), Copysign(0, -1)},1152 {Copysign(0, -1), 0},1153 {0, Copysign(0, -1)},1154 {0, 0},1155 {Inf(1), Inf(-1)},1156 {Inf(1), Inf(1)},1157 {Inf(1), NaN()},1158 {NaN(), Inf(-1)},1159 {NaN(), Copysign(0, -1)},1160 {NaN(), 0},1161 {NaN(), Inf(1)},1162 {NaN(), NaN()},1163}1164var nan = Float64frombits(0xFFF8000000000000) // SSE2 DIVSD 0/01165var vffdim2SC = [][2]float64{1166 {Inf(-1), Inf(-1)},1167 {Inf(-1), Inf(1)},1168 {Inf(-1), nan},1169 {Copysign(0, -1), Copysign(0, -1)},1170 {Copysign(0, -1), 0},1171 {0, Copysign(0, -1)},1172 {0, 0},1173 {Inf(1), Inf(-1)},1174 {Inf(1), Inf(1)},1175 {Inf(1), nan},1176 {nan, Inf(-1)},1177 {nan, Copysign(0, -1)},1178 {nan, 0},1179 {nan, Inf(1)},1180 {nan, nan},1181}1182var fdimSC = []float64{1183 NaN(),1184 0,1185 NaN(),1186 0,1187 0,1188 0,1189 0,1190 Inf(1),1191 NaN(),1192 NaN(),1193 NaN(),1194 NaN(),1195 NaN(),1196 NaN(),1197 NaN(),1198}1199var fmaxSC = []float64{1200 Inf(-1),