js/src/tests/ecma_6/Math/tanh-approx.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/tests/ecma_6/Math/tanh-approx.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,282 @@
     1.4 +var sloppy_tolerance = 4;
     1.5 +
     1.6 +for (var i = -20; i < 20; i++) {
     1.7 +    assertNear(Math.tanh(i),
     1.8 +               (Math.exp(i) - Math.exp(-i)) / (Math.exp(i) + Math.exp(-i)),
     1.9 +               sloppy_tolerance);
    1.10 +}
    1.11 +
    1.12 +assertEq(Math.tanh(1e300), 1);
    1.13 +
    1.14 +var tanh_data = [
    1.15 +    [-0.9999983310699463, -6.998237084679027],
    1.16 +    [-0.9999978542327881, -6.87257975132917],
    1.17 +    [-0.999992847442627, -6.2705920974657525],
    1.18 +    [-0.9999861717224121, -5.940967614084813],
    1.19 +    [-0.9999828338623047, -5.832855225378502],
    1.20 +    [-0.9999399185180664, -5.20646301208756],
    1.21 +    [-0.9998834133148193, -4.8749821841810785],
    1.22 +    [-0.9998509883880615, -4.752279497280338],
    1.23 +    [-0.9996016025543213, -4.260504202858904],
    1.24 +    [-0.9993612766265869, -4.0244334353203115],
    1.25 +    [-0.9989283084869385, -3.7655641082999236],
    1.26 +    [-0.9969782829284668, -3.246782610980921],
    1.27 +    [-0.9950058460235596, -2.9950671179940938],
    1.28 +    [-0.9942638874053955, -2.9256242749609536],
    1.29 +    [-0.990715742111206, -2.6839646283308363],
    1.30 +    [-0.9903340339660645, -2.663723350226518],
    1.31 +    [-0.9760982990264893, -2.207464998348322],
    1.32 +    [-0.975830078125, -2.201817459680556],
    1.33 +    [-0.9728245735168457, -2.1424542308291437],
    1.34 +    [-0.9643559455871582, -2.0046686756020917],
    1.35 +    [-0.9377224445343018, -1.7188337346177065],
    1.36 +    [-0.9362406730651855, -1.7066940482565154],
    1.37 +    [-0.9310147762298584, -1.6659543005533146],
    1.38 +    [-0.9284839630126953, -1.6472838718760747],
    1.39 +    [-0.9270248413085938, -1.6368067340881562],
    1.40 +    [-0.9075665473937988, -1.5135473477311114],
    1.41 +    [-0.897477388381958, -1.4590986086331497],
    1.42 +    [-0.8920106887817383, -1.431681573516303],
    1.43 +    [-0.8776559829711914, -1.365471286049011],
    1.44 +    [-0.864722728729248, -1.3117705583444539],
    1.45 +    [-0.8482067584991455, -1.249725893334944],
    1.46 +    [-0.8056559562683105, -1.1145246028592257],
    1.47 +    [-0.8048388957977295, -1.112200609756455],
    1.48 +    [-0.7801985740661621, -1.0458778330822556],
    1.49 +    [-0.7749934196472168, -1.032711173436253],
    1.50 +    [-0.7619285583496094, -1.0007967281362184],
    1.51 +    [-0.7504425048828125, -0.9739672824457072],
    1.52 +    [-0.7495596408843994, -0.9719492983286864],
    1.53 +    [-0.7481319904327393, -0.968698942014487],
    1.54 +    [-0.7459518909454346, -0.9637657636705832],
    1.55 +    [-0.7401137351989746, -0.9507308314464193],
    1.56 +    [-0.7289731502532959, -0.9265325319867653],
    1.57 +    [-0.7226788997650146, -0.9132299082876396],
    1.58 +    [-0.7161557674407959, -0.8997082193533088],
    1.59 +    [-0.7017018795013428, -0.8706453720344796],
    1.60 +    [-0.7013418674468994, -0.86993650130945],
    1.61 +    [-0.691054105758667, -0.8499705913361888],
    1.62 +    [-0.6847054958343506, -0.837919455842005],
    1.63 +    [-0.6838164329528809, -0.8362476144993315],
    1.64 +    [-0.6747090816497803, -0.8193374156276964],
    1.65 +    [-0.6575610637664795, -0.7885046044142132],
    1.66 +    [-0.6522045135498047, -0.7791255597799839],
    1.67 +    [-0.6261923313140869, -0.7351275788820003],
    1.68 +    [-0.623173713684082, -0.7301771459970386],
    1.69 +    [-0.6067488193511963, -0.7037597526130627],
    1.70 +    [-0.5838055610656738, -0.6682166303197608],
    1.71 +    [-0.579524040222168, -0.6617457665293066],
    1.72 +    [-0.5760939121246338, -0.656596458857398],
    1.73 +    [-0.5654678344726562, -0.6408350116350283],
    1.74 +    [-0.5578761100769043, -0.6297442839791668],
    1.75 +    [-0.5523209571838379, -0.6217149641475687],
    1.76 +    [-0.5396339893341064, -0.6036390747171698],
    1.77 +    [-0.5128989219665527, -0.5666556256064771],
    1.78 +    [-0.5087778568267822, -0.5610793900942042],
    1.79 +    [-0.4977825880050659, -0.546353950571504],
    1.80 +    [-0.4913865327835083, -0.5378865967606703],
    1.81 +    [-0.48976075649261475, -0.5357455496477738],
    1.82 +    [-0.48493504524230957, -0.5294166456244711],
    1.83 +    [-0.4479050636291504, -0.4820764946679979],
    1.84 +    [-0.4461095333099365, -0.4798325976916711],
    1.85 +    [-0.4429593086242676, -0.47590653371561276],
    1.86 +    [-0.42827916145324707, -0.45778739362936793],
    1.87 +    [-0.40590059757232666, -0.4306933608076879],
    1.88 +    [-0.40029656887054443, -0.4240020382545707],
    1.89 +    [-0.3961341381072998, -0.4190551379319939],
    1.90 +    [-0.3836275339126587, -0.40430627175908734],
    1.91 +    [-0.36686253547668457, -0.3847928551425507],
    1.92 +    [-0.3657644987106323, -0.38352464227459343],
    1.93 +    [-0.33507001399993896, -0.3485286317501442],
    1.94 +    [-0.32572221755981445, -0.3380352468276522],
    1.95 +    [-0.3191967010498047, -0.3307524237890151],
    1.96 +    [-0.3000025749206543, -0.3095224337886503],
    1.97 +    [-0.29665136337280273, -0.3058438250228025],
    1.98 +    [-0.2944457530975342, -0.3034271164344305],
    1.99 +    [-0.2872810363769531, -0.29560018347246825],
   1.100 +    [-0.27738428115844727, -0.28484608203169437],
   1.101 +    [-0.2390844225883484, -0.2438028008332661],
   1.102 +    [-0.23685944080352783, -0.24144425169391517],
   1.103 +    [-0.2253856658935547, -0.2293228153248168],
   1.104 +    [-0.22283810377120972, -0.22664053064745143],
   1.105 +    [-0.21552443504333496, -0.21895773601143995],
   1.106 +    [-0.2153375744819641, -0.21876178107952995],
   1.107 +    [-0.21016258001327515, -0.21334143320771737],
   1.108 +    [-0.20250272750854492, -0.2053409277979887],
   1.109 +    [-0.19156384468078613, -0.19396008474133075],
   1.110 +    [-0.18251943588256836, -0.18458771439322938],
   1.111 +    [-0.17464947700500488, -0.17645844608618066],
   1.112 +    [-0.15646183490753174, -0.15775766677189154],
   1.113 +    [-0.15580910444259644, -0.15708862621964176],
   1.114 +    [-0.15365445613861084, -0.15488112515549593],
   1.115 +    [-0.122499018907547, -0.12311733609904851],
   1.116 +    [-0.1088167130947113, -0.10924929296737837],
   1.117 +    [-0.08792558312416077, -0.08815322150790302],
   1.118 +    [-0.08401328325271606, -0.08421178632314608],
   1.119 +    [-0.06121261417865753, -0.06128924075509796],
   1.120 +    [-0.05341699719429016, -0.05346789060550386],
   1.121 +    [-0.05047759413719177, -0.05052053189238029],
   1.122 +    [-0.02924579381942749, -0.029254136237332657],
   1.123 +    [-0.02485968917608261, -0.02486481220617492],
   1.124 +    [-0.020469173789024353, -0.02047203328100153],
   1.125 +    [-0.01882001757621765, -0.018822240021756347],
   1.126 +    [-0.016152501106262207, -0.016153906073109205],
   1.127 +    [-0.0032715508714318275, -0.003271562543358962],
   1.128 +    [1.6504814008555524e-12, 1.6504814008555524e-12],
   1.129 +    [2.0654207510961697e-12, 2.0654207510961697e-12],
   1.130 +    [6.933230031758164e-12, 6.933230031758164e-12],
   1.131 +    [1.3351444949627478e-11, 1.3351444949627478e-11],
   1.132 +    [1.6399812063916386e-11, 1.6399812063916386e-11],
   1.133 +    [5.730159402528301e-11, 5.730159402528301e-11],
   1.134 +    [1.113731329382972e-10, 1.113731329382972e-10],
   1.135 +    [1.4214707189097453e-10, 1.4214707189097453e-10],
   1.136 +    [3.8006320313144215e-10, 3.8006320313144215e-10],
   1.137 +    [6.09162720266454e-10, 6.09162720266454e-10],
   1.138 +    [1.0221641311147778e-9, 1.0221641311147778e-9],
   1.139 +    [2.8819222563924995e-9, 2.8819222563924995e-9],
   1.140 +    [4.7627768395841485e-9, 4.7627768395841485e-9],
   1.141 +    [8.854133426439148e-9, 8.854133426439148e-9],
   1.142 +    [2.3050326092288742e-8, 2.3050326092288745e-8],
   1.143 +    [5.9392490925347374e-8, 5.939249092534745e-8],
   1.144 +    [1.166764889148908e-7, 1.1667648891489133e-7],
   1.145 +    [2.3799674409019644e-7, 2.3799674409020094e-7],
   1.146 +    [4.684659415943315e-7, 4.684659415943658e-7],
   1.147 +    [9.382699772686465e-7, 9.382699772689218e-7],
   1.148 +    [0.00000110398559627356, 0.0000011039855962740086],
   1.149 +    [0.0000032917760108830407, 0.0000032917760108949305],
   1.150 +    [0.00000751721381675452, 0.000007517213816896115],
   1.151 +    [0.000015114666894078255, 0.000015114666895229252],
   1.152 +    [0.00002986399340443313, 0.00002986399341331128],
   1.153 +    [0.00003387028118595481, 0.000033870281198906756],
   1.154 +    [0.00009066011989489198, 0.00009066012014327826],
   1.155 +    [0.00021949532674625516, 0.0002194953302712184],
   1.156 +    [0.00043952150736004114, 0.0004395215356621756],
   1.157 +    [0.0006333151832222939, 0.0006333152678940465],
   1.158 +    [0.001115123275667429, 0.0011151237378863419],
   1.159 +    [0.001962467096745968, 0.001962469616086656],
   1.160 +    [0.005553754046559334, 0.005553811147953338],
   1.161 +    [0.007324676960706711, 0.0073248079567425],
   1.162 +    [0.008691128343343735, 0.008691347183450786],
   1.163 +    [0.011912941932678223, 0.011913505535037906],
   1.164 +    [0.02993336319923401, 0.029942308168570204],
   1.165 +    [0.05124260485172272, 0.05128752666822782],
   1.166 +    [0.05473744869232178, 0.05479221508125444],
   1.167 +    [0.06158891320228577, 0.061666963819518306],
   1.168 +    [0.09375360608100891, 0.09402975380882211],
   1.169 +    [0.09442159533500671, 0.09470370926367391],
   1.170 +    [0.09443172812461853, 0.09471393321406026],
   1.171 +    [0.09943729639053345, 0.09976699249016487],
   1.172 +    [0.11201295256614685, 0.11248498303558895],
   1.173 +    [0.12310260534286499, 0.12373016402339168],
   1.174 +    [0.13562965393066406, 0.13647060950861248],
   1.175 +    [0.13763350248336792, 0.13851257866094746],
   1.176 +    [0.14749455451965332, 0.14857829980464834],
   1.177 +    [0.1618971824645996, 0.16333433166790448],
   1.178 +    [0.17051106691360474, 0.17219298693637355],
   1.179 +    [0.17051833868026733, 0.17220047646299907],
   1.180 +    [0.18562912940979004, 0.18780647318150087],
   1.181 +    [0.18898820877075195, 0.1912876932893582],
   1.182 +    [0.23206615447998047, 0.23637212433914523],
   1.183 +    [0.23480379581451416, 0.2392675448267427],
   1.184 +    [0.2646920680999756, 0.27114729033023005],
   1.185 +    [0.2794986963272095, 0.2871382059344433],
   1.186 +    [0.28789305686950684, 0.2962673858386819],
   1.187 +    [0.292596697807312, 0.30140373665239234],
   1.188 +    [0.3101649284362793, 0.320727882769785],
   1.189 +    [0.3109246492385864, 0.3215686893944558],
   1.190 +    [0.31145012378692627, 0.3221505056451929],
   1.191 +    [0.3271782398223877, 0.3396649461699478],
   1.192 +    [0.3574345111846924, 0.37394153436545424],
   1.193 +    [0.3593693971633911, 0.37616159223090223],
   1.194 +    [0.35960352420806885, 0.37643046596933716],
   1.195 +    [0.3626827001571655, 0.3799714809649667],
   1.196 +    [0.38961827754974365, 0.4113499159905353],
   1.197 +    [0.3904266357421875, 0.41230330080214],
   1.198 +    [0.3981136083602905, 0.4214052375603139],
   1.199 +    [0.411507248878479, 0.43742438709579096],
   1.200 +    [0.4120509624481201, 0.43807911823743495],
   1.201 +    [0.41868770122528076, 0.4460997186945703],
   1.202 +    [0.42136549949645996, 0.4493511447897729],
   1.203 +    [0.4516327381134033, 0.48674948990473677],
   1.204 +    [0.4538639783859253, 0.4895560176112375],
   1.205 +    [0.4655507802963257, 0.5043748446613433],
   1.206 +    [0.48124635219573975, 0.5246050193978663],
   1.207 +    [0.48621630668640137, 0.5310932154891663],
   1.208 +    [0.4898730516433716, 0.5358932909903701],
   1.209 +    [0.5024838447570801, 0.5526234425942533],
   1.210 +    [0.5074074268341064, 0.5592320547729962],
   1.211 +    [0.5093221664428711, 0.5618140818296767],
   1.212 +    [0.5143489837646484, 0.5686253097655146],
   1.213 +    [0.5154285430908203, 0.5700943191671631],
   1.214 +    [0.5234100818634033, 0.5810250825991418],
   1.215 +    [0.5274472236633301, 0.5866018515043636],
   1.216 +    [0.5309803485870361, 0.5915094458340507],
   1.217 +    [0.5477793216705322, 0.6152030999229688],
   1.218 +    [0.5577394962310791, 0.6295459624918965],
   1.219 +    [0.5582785606384277, 0.6303287742357745],
   1.220 +    [0.5843560695648193, 0.6690521906099505],
   1.221 +    [0.5871362686157227, 0.6732844960442398],
   1.222 +    [0.5878911018371582, 0.6744372167164567],
   1.223 +    [0.5903406143188477, 0.6781887236623534],
   1.224 +    [0.5945003032684326, 0.684597775489552],
   1.225 +    [0.5957975387573242, 0.6866065102131665],
   1.226 +    [0.5961520671844482, 0.6871563252400655],
   1.227 +    [0.6005008220672607, 0.6939300827887145],
   1.228 +    [0.6150004863739014, 0.7169242329194352],
   1.229 +    [0.6162893772125244, 0.7189998055497108],
   1.230 +    [0.6194069385528564, 0.7240422748778544],
   1.231 +    [0.6285066604614258, 0.7389438896054792],
   1.232 +    [0.6293842792510986, 0.7403958734869583],
   1.233 +    [0.6416172981262207, 0.7609178886018204],
   1.234 +    [0.6424276828765869, 0.7622965466812235],
   1.235 +    [0.6437420845031738, 0.7645378650643101],
   1.236 +    [0.6468508243560791, 0.769864795178161],
   1.237 +    [0.6615910530090332, 0.7956379107512945],
   1.238 +    [0.669950008392334, 0.8106524185805045],
   1.239 +    [0.6813662052154541, 0.8316597473423232],
   1.240 +    [0.6968657970428467, 0.8611812790659296],
   1.241 +    [0.6981887817382812, 0.8637579113749143],
   1.242 +    [0.7447831630706787, 0.9611360201710216],
   1.243 +    [0.7518312931060791, 0.9771540941752986],
   1.244 +    [0.7534394264221191, 0.9808634133542229],
   1.245 +    [0.7567856311798096, 0.9886489208209699],
   1.246 +    [0.7817282676696777, 1.0497991719828956],
   1.247 +    [0.8115026950836182, 1.1314141444187586],
   1.248 +    [0.814647912979126, 1.1406947755584418],
   1.249 +    [0.8266689777374268, 1.1775230833699681],
   1.250 +    [0.8313877582550049, 1.1926138225701433],
   1.251 +    [0.8343038558959961, 1.2021323323039612],
   1.252 +    [0.8416652679443359, 1.2268570644335162],
   1.253 +    [0.8584413528442383, 1.2873896671573652],
   1.254 +    [0.8678996562957764, 1.3245040433929398],
   1.255 +    [0.8679344654083252, 1.3246451309261607],
   1.256 +    [0.8800599575042725, 1.3760334877782177],
   1.257 +    [0.9003539085388184, 1.4740852961194106],
   1.258 +    [0.9099440574645996, 1.5271990851861994],
   1.259 +    [0.9142425060272217, 1.5527768948273004],
   1.260 +    [0.9149219989776611, 1.556931837197936],
   1.261 +    [0.9184908866882324, 1.5792896628381612],
   1.262 +    [0.9188928604125977, 1.5818663359427627],
   1.263 +    [0.919395923614502, 1.5851082843320008],
   1.264 +    [0.9296839237213135, 1.6560555223295368],
   1.265 +    [0.9298396110534668, 1.6572041418041492],
   1.266 +    [0.9352962970733643, 1.6990986433619266],
   1.267 +    [0.9376416206359863, 1.718164398807965],
   1.268 +    [0.9410912990570068, 1.7475084077246632],
   1.269 +    [0.962122917175293, 1.9737180163455101],
   1.270 +    [0.9748215675354004, 2.1811227771083783],
   1.271 +    [0.9769454002380371, 2.2257214499698255],
   1.272 +    [0.985663890838623, 2.4654635601650536],
   1.273 +    [0.9880380630493164, 2.5565869228142004],
   1.274 +    [0.9928233623504639, 2.8132383539094192],
   1.275 +    [1e-300, 1e-300],
   1.276 +    [0.00001, 0.000010000000000333334],
   1.277 +    [0.3, 0.3095196042031117],
   1.278 +    [1e-30, 1e-30],
   1.279 +    [1e-10, 1e-10],
   1.280 +];
   1.281 +
   1.282 +for (var [x, y] of tanh_data)
   1.283 +    assertNear(Math.tanh(y), x, sloppy_tolerance);
   1.284 +
   1.285 +reportCompare(0, 0, "ok");

mercurial