commit 0dadb04584223e1493440f1f5abc3d818bf499d4
parent ec0e51f9c746f7c662621aea2e676104f799475d
Author: Alexey Yerin <yyp@disroot.org>
Date: Fri, 8 Oct 2021 20:19:32 +0300
math: only build testdata on +test
Also de-export them while here.
Signed-off-by: Alexey Yerin <yyp@disroot.org>
Diffstat:
4 files changed, 453 insertions(+), 445 deletions(-)
diff --git a/math/data+test.ha b/math/data+test.ha
@@ -0,0 +1,440 @@
+// The test data below is based on Go's implementation, and came with the
+// following note and copyright notice:
+//
+// The expected results below were computed by the high precision calculators
+// at https://keisan.casio.com/. More exact input values (array vf[], above)
+// were obtained by printing them with "%.26f". The answers were calculated
+// to 26 digits (by using the "Digit number" drop-down control of each
+// calculator).
+//
+// The Go copyright notice:
+// ====================================================
+// Copyright (c) 2009 The Go Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// ====================================================
+
+const TEST_INPUTS: [_]f64 = [
+ 4.9790119248836735e+00,
+ 7.7388724745781045e+00,
+ -2.7688005719200159e-01,
+ -5.0106036182710749e+00,
+ 9.6362937071984173e+00,
+ 2.9263772392439646e+00,
+ 5.2290834314593066e+00,
+ 2.7279399104360102e+00,
+ 1.8253080916808550e+00,
+ -8.6859247685756013e+00,
+];
+
+const TEST_ACOS: [_]f64 = [
+ 1.0496193546107222142571536e+00,
+ 6.8584012813664425171660692e-01,
+ 1.5984878714577160325521819e+00,
+ 2.0956199361475859327461799e+00,
+ 2.7053008467824138592616927e-01,
+ 1.2738121680361776018155625e+00,
+ 1.0205369421140629186287407e+00,
+ 1.2945003481781246062157835e+00,
+ 1.3872364345374451433846657e+00,
+ 2.6231510803970463967294145e+00,
+];
+const TEST_ACOSH: [_]f64 = [
+ 2.4743347004159012494457618e+00,
+ 2.8576385344292769649802701e+00,
+ 7.2796961502981066190593175e-01,
+ 2.4796794418831451156471977e+00,
+ 3.0552020742306061857212962e+00,
+ 2.044238592688586588942468e+00,
+ 2.5158701513104513595766636e+00,
+ 1.99050839282411638174299e+00,
+ 1.6988625798424034227205445e+00,
+ 2.9611454842470387925531875e+00,
+];
+const TEST_ASIN: [_]f64 = [
+ 5.2117697218417440497416805e-01,
+ 8.8495619865825236751471477e-01,
+ -02.769154466281941332086016e-02,
+ -5.2482360935268931351485822e-01,
+ 1.3002662421166552333051524e+00,
+ 2.9698415875871901741575922e-01,
+ 5.5025938468083370060258102e-01,
+ 2.7629597861677201301553823e-01,
+ 1.83559892257451475846656e-01,
+ -1.0523547536021497774980928e+00,
+];
+const TEST_ASINH: [_]f64 = [
+ 2.3083139124923523427628243e+00,
+ 2.743551594301593620039021e+00,
+ -2.7345908534880091229413487e-01,
+ -2.3145157644718338650499085e+00,
+ 2.9613652154015058521951083e+00,
+ 1.7949041616585821933067568e+00,
+ 2.3564032905983506405561554e+00,
+ 1.7287118790768438878045346e+00,
+ 1.3626658083714826013073193e+00,
+ -2.8581483626513914445234004e+00,
+];
+const TEST_ATAN: [_]f64 = [
+ 1.372590262129621651920085e+00,
+ 1.442290609645298083020664e+00,
+ -2.7011324359471758245192595e-01,
+ -1.3738077684543379452781531e+00,
+ 1.4673921193587666049154681e+00,
+ 1.2415173565870168649117764e+00,
+ 1.3818396865615168979966498e+00,
+ 1.2194305844639670701091426e+00,
+ 1.0696031952318783760193244e+00,
+ -1.4561721938838084990898679e+00,
+];
+const TEST_ATANH: [_]f64 = [
+ 5.4651163712251938116878204e-01,
+ 1.0299474112843111224914709e+00,
+ -2.7695084420740135145234906e-02,
+ -5.5072096119207195480202529e-01,
+ 1.9943940993171843235906642e+00,
+ 3.01448604578089708203017e-01,
+ 5.8033427206942188834370595e-01,
+ 2.7987997499441511013958297e-01,
+ 1.8459947964298794318714228e-01,
+ -1.3273186910532645867272502e+00,
+];
+const TEST_CEIL: [_]f64 = [
+ 5.0000000000000000e+00,
+ 8.0000000000000000e+00,
+ -0.0000000000000000e+00,
+ -5.0000000000000000e+00,
+ 1.0000000000000000e+01,
+ 3.0000000000000000e+00,
+ 6.0000000000000000e+00,
+ 3.0000000000000000e+00,
+ 2.0000000000000000e+00,
+ -8.0000000000000000e+00,
+];
+const TEST_COS: [_]f64 = [
+ 2.634752140995199110787593e-01,
+ 1.148551260848219865642039e-01,
+ 9.6191297325640768154550453e-01,
+ 2.938141150061714816890637e-01,
+ -9.777138189897924126294461e-01,
+ -9.7693041344303219127199518e-01,
+ 4.940088096948647263961162e-01,
+ -9.1565869021018925545016502e-01,
+ -2.517729313893103197176091e-01,
+ -7.39241351595676573201918e-01,
+];
+// Results for 100000 * PI + TEST_INPUTS[i]
+const TEST_COSLARGE: [_]f64 = [
+ 2.634752141185559426744e-01,
+ 1.14855126055543100712e-01,
+ 9.61912973266488928113e-01,
+ 2.9381411499556122552e-01,
+ -9.777138189880161924641e-01,
+ -9.76930413445147608049e-01,
+ 4.940088097314976789841e-01,
+ -9.15658690217517835002e-01,
+ -2.51772931436786954751e-01,
+ -7.3924135157173099849e-01,
+];
+const TEST_COSH: [_]f64 = [
+ 7.2668796942212842775517446e+01,
+ 1.1479413465659254502011135e+03,
+ 1.0385767908766418550935495e+00,
+ 7.5000957789658051428857788e+01,
+ 7.655246669605357888468613e+03,
+ 9.3567491758321272072888257e+00,
+ 9.331351599270605471131735e+01,
+ 7.6833430994624643209296404e+00,
+ 3.1829371625150718153881164e+00,
+ 2.9595059261916188501640911e+03,
+];
+const TEST_EXP: [_]f64 = [
+ 1.4533071302642137507696589e+02,
+ 2.2958822575694449002537581e+03,
+ 7.5814542574851666582042306e-01,
+ 6.6668778421791005061482264e-03,
+ 1.5310493273896033740861206e+04,
+ 1.8659907517999328638667732e+01,
+ 1.8662167355098714543942057e+02,
+ 1.5301332413189378961665788e+01,
+ 6.2047063430646876349125085e+00,
+ 1.6894712385826521111610438e-04,
+];
+const TEST_EXP2: [_]f64 = [
+ 3.1537839463286288034313104e+01,
+ 2.1361549283756232296144849e+02,
+ 8.2537402562185562902577219e-01,
+ 3.1021158628740294833424229e-02,
+ 7.9581744110252191462569661e+02,
+ 7.6019905892596359262696423e+00,
+ 3.7506882048388096973183084e+01,
+ 6.6250893439173561733216375e+00,
+ 3.5438267900243941544605339e+00,
+ 2.4281533133513300984289196e-03,
+];
+const TEST_ABSF: [_]f64 = [
+ 4.9790119248836735e+00,
+ 7.7388724745781045e+00,
+ 2.7688005719200159e-01,
+ 5.0106036182710749e+00,
+ 9.6362937071984173e+00,
+ 2.9263772392439646e+00,
+ 5.2290834314593066e+00,
+ 2.7279399104360102e+00,
+ 1.8253080916808550e+00,
+ 8.6859247685756013e+00,
+];
+const TEST_FLOOR: [_]f64 = [
+ 4.0000000000000000e+00,
+ 7.0000000000000000e+00,
+ -1.0000000000000000e+00,
+ -6.0000000000000000e+00,
+ 9.0000000000000000e+00,
+ 2.0000000000000000e+00,
+ 5.0000000000000000e+00,
+ 2.0000000000000000e+00,
+ 1.0000000000000000e+00,
+ -9.0000000000000000e+00,
+];
+const TEST_MODF: [_]f64 = [
+ 4.197615023265299782906368e-02,
+ 2.261127525421895434476482e+00,
+ 3.231794108794261433104108e-02,
+ 4.989396381728925078391512e+00,
+ 3.637062928015826201999516e-01,
+ 1.220868282268106064236690e+00,
+ 4.770916568540693347699744e+00,
+ 1.816180268691969246219742e+00,
+ 8.734595415957246977711748e-01,
+ 1.314075231424398637614104e+00,
+];
+const TEST_FREXP: [_](f64, i64) = [
+ (6.2237649061045918750e-01, 3),
+ (9.6735905932226306250e-01, 3),
+ (-5.5376011438400318000e-01, -1),
+ (-6.2632545228388436250e-01, 3),
+ (6.02268356699901081250e-01, 4),
+ (7.3159430981099115000e-01, 2),
+ (6.5363542893241332500e-01, 3),
+ (6.8198497760900255000e-01, 2),
+ (9.1265404584042750000e-01, 1),
+ (-5.4287029803597508250e-01, 4),
+];
+const TEST_LOG: [_]f64 = [
+ 1.605231462693062999102599e+00,
+ 2.0462560018708770653153909e+00,
+ -1.2841708730962657801275038e+00,
+ 1.6115563905281545116286206e+00,
+ 2.2655365644872016636317461e+00,
+ 1.0737652208918379856272735e+00,
+ 1.6542360106073546632707956e+00,
+ 1.0035467127723465801264487e+00,
+ 6.0174879014578057187016475e-01,
+ 2.161703872847352815363655e+00,
+];
+const TEST_LOG10: [_]f64 = [
+ 6.9714316642508290997617083e-01,
+ 8.886776901739320576279124e-01,
+ -5.5770832400658929815908236e-01,
+ 6.998900476822994346229723e-01,
+ 9.8391002850684232013281033e-01,
+ 4.6633031029295153334285302e-01,
+ 7.1842557117242328821552533e-01,
+ 4.3583479968917773161304553e-01,
+ 2.6133617905227038228626834e-01,
+ 9.3881606348649405716214241e-01,
+];
+const TEST_LOG2: [_]f64 = [
+ 2.3158594707062190618898251e+00,
+ 2.9521233862883917703341018e+00,
+ -1.8526669502700329984917062e+00,
+ 2.3249844127278861543568029e+00,
+ 3.268478366538305087466309e+00,
+ 1.5491157592596970278166492e+00,
+ 2.3865580889631732407886495e+00,
+ 1.447811865817085365540347e+00,
+ 8.6813999540425116282815557e-01,
+ 3.118679457227342224364709e+00,
+];
+const TEST_LOG1P: []f64 = [
+ 4.8590257759797794104158205e-02,
+ 7.4540265965225865330849141e-02,
+ -2.7726407903942672823234024e-03,
+ -5.1404917651627649094953380e-02,
+ 9.1998280672258624681335010e-02,
+ 2.8843762576593352865894824e-02,
+ 5.0969534581863707268992645e-02,
+ 2.6913947602193238458458594e-02,
+ 1.8088493239630770262045333e-02,
+ -9.0865245631588989681559268e-02,
+];
+const TEST_MODFRAC: [_](i64, f64) = [
+ (4i64, 9.7901192488367350108546816e-01),
+ (7i64, 7.3887247457810456552351752e-01),
+ (-0i64, -2.7688005719200159404635997e-01),
+ (-5i64, -1.060361827107492160848778e-02),
+ (9i64, 6.3629370719841737980004837e-01),
+ (2i64, 9.2637723924396464525443662e-01),
+ (5i64, 2.2908343145930665230025625e-01),
+ (2i64, 7.2793991043601025126008608e-01),
+ (1i64, 8.2530809168085506044576505e-01),
+ (-8i64, -6.8592476857560136238589621e-01),
+];
+const TEST_POW: [_]f64 = [
+ 9.5282232631648411840742957e+04,
+ 5.4811599352999901232411871e+07,
+ 5.2859121715894396531132279e-01,
+ 9.7587991957286474464259698e-06,
+ 4.328064329346044846740467e+09,
+ 8.4406761805034547437659092e+02,
+ 1.6946633276191194947742146e+05,
+ 5.3449040147551939075312879e+02,
+ 6.688182138451414936380374e+01,
+ 2.0609869004248742886827439e-09,
+];
+const TEST_ROUND: [_]f64 = [
+ 5.0f64,
+ 8.0f64,
+ -0.0f64,
+ -5.0f64,
+ 10.0f64,
+ 3.0f64,
+ 5.0f64,
+ 3.0f64,
+ 2.0f64,
+ -9.0f64,
+];
+const TEST_SIGNF: [_]i8 = [
+ 1,
+ 1,
+ -1,
+ -1,
+ 1,
+ 1,
+ 1,
+ 1,
+ 1,
+ -1,
+];
+const TEST_SIN: [_]f64 = [
+ -9.6466616586009283766724726e-01,
+ 9.9338225271646545763467022e-01,
+ -2.7335587039794393342449301e-01,
+ 9.5586257685042792878173752e-01,
+ -2.099421066779969164496634e-01,
+ 2.135578780799860532750616e-01,
+ -8.694568971167362743327708e-01,
+ 4.019566681155577786649878e-01,
+ 9.6778633541687993721617774e-01,
+ -6.734405869050344734943028e-01,
+];
+// Results for 100000 * PI + TEST_INPUTS[i]
+const TEST_SINLARGE: [_]f64 = [
+ -9.646661658548936063912e-01,
+ 9.933822527198506903752e-01,
+ -2.7335587036246899796e-01,
+ 9.55862576853689321268e-01,
+ -2.099421066862688873691e-01,
+ 2.13557878070308981163e-01,
+ -8.694568970959221300497e-01,
+ 4.01956668098863248917e-01,
+ 9.67786335404528727927e-01,
+ -6.7344058693131973066e-01,
+];
+const TEST_SINH: [_]f64 = [
+ 7.2661916084208532301448439e+01,
+ 1.1479409110035194500526446e+03,
+ -2.8043136512812518927312641e-01,
+ -7.499429091181587232835164e+01,
+ 7.6552466042906758523925934e+03,
+ 9.3031583421672014313789064e+00,
+ 9.330815755828109072810322e+01,
+ 7.6179893137269146407361477e+00,
+ 3.021769180549615819524392e+00,
+ -2.95950575724449499189888e+03,
+];
+const TEST_SQRT: [_]f64 = [
+ 2.2313699659365484748756904e+00,
+ 2.7818829009464263511285458e+00,
+ 5.2619393496314796848143251e-01,
+ 2.2384377628763938724244104e+00,
+ 3.1042380236055381099288487e+00,
+ 1.7106657298385224403917771e+00,
+ 2.286718922705479046148059e+00,
+ 1.6516476350711159636222979e+00,
+ 1.3510396336454586262419247e+00,
+ 2.9471892997524949215723329e+00,
+];
+const TEST_TAN: [_]f64 = [
+ -3.661316565040227801781974e+00,
+ 8.64900232648597589369854e+00,
+ -2.8417941955033612725238097e-01,
+ 3.253290185974728640827156e+00,
+ 2.147275640380293804770778e-01,
+ -2.18600910711067004921551e-01,
+ -1.760002817872367935518928e+00,
+ -4.389808914752818126249079e-01,
+ -3.843885560201130679995041e+00,
+ 9.10988793377685105753416e-01,
+];
+// Results for 100000 * PI + TEST_INPUTS[i]
+const TEST_TANLARGE: [_]f64 = [
+ -3.66131656475596512705e+00,
+ 8.6490023287202547927e+00,
+ -2.841794195104782406e-01,
+ 3.2532901861033120983e+00,
+ 2.14727564046880001365e-01,
+ -2.18600910700688062874e-01,
+ -1.760002817699722747043e+00,
+ -4.38980891453536115952e-01,
+ -3.84388555942723509071e+00,
+ 9.1098879344275101051e-01,
+];
+const TEST_TANH: [_]f64 = [
+ 9.9990531206936338549262119e-01,
+ 9.9999962057085294197613294e-01,
+ -2.7001505097318677233756845e-01,
+ -9.9991110943061718603541401e-01,
+ 9.9999999146798465745022007e-01,
+ 9.9427249436125236705001048e-01,
+ 9.9994257600983138572705076e-01,
+ 9.9149409509772875982054701e-01,
+ 9.4936501296239685514466577e-01,
+ -9.9999994291374030946055701e-01,
+];
+const TEST_TRUNC: [_]f64 = [
+ 4.0000000000000000e+00,
+ 7.0000000000000000e+00,
+ -0.0000000000000000e+00,
+ -5.0000000000000000e+00,
+ 9.0000000000000000e+00,
+ 2.0000000000000000e+00,
+ 5.0000000000000000e+00,
+ 2.0000000000000000e+00,
+ 1.0000000000000000e+00,
+ -8.0000000000000000e+00,
+];
diff --git a/math/testdata.ha b/math/testdata.ha
@@ -1,440 +0,0 @@
-// The test data below is based on Go's implementation, and came with the
-// following note and copyright notice:
-//
-// The expected results below were computed by the high precision calculators
-// at https://keisan.casio.com/. More exact input values (array vf[], above)
-// were obtained by printing them with "%.26f". The answers were calculated
-// to 26 digits (by using the "Digit number" drop-down control of each
-// calculator).
-//
-// The Go copyright notice:
-// ====================================================
-// Copyright (c) 2009 The Go Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// ====================================================
-
-export const TEST_INPUTS: [_]f64 = [
- 4.9790119248836735e+00,
- 7.7388724745781045e+00,
- -2.7688005719200159e-01,
- -5.0106036182710749e+00,
- 9.6362937071984173e+00,
- 2.9263772392439646e+00,
- 5.2290834314593066e+00,
- 2.7279399104360102e+00,
- 1.8253080916808550e+00,
- -8.6859247685756013e+00,
-];
-
-export const TEST_ACOS: [_]f64 = [
- 1.0496193546107222142571536e+00,
- 6.8584012813664425171660692e-01,
- 1.5984878714577160325521819e+00,
- 2.0956199361475859327461799e+00,
- 2.7053008467824138592616927e-01,
- 1.2738121680361776018155625e+00,
- 1.0205369421140629186287407e+00,
- 1.2945003481781246062157835e+00,
- 1.3872364345374451433846657e+00,
- 2.6231510803970463967294145e+00,
-];
-export const TEST_ACOSH: [_]f64 = [
- 2.4743347004159012494457618e+00,
- 2.8576385344292769649802701e+00,
- 7.2796961502981066190593175e-01,
- 2.4796794418831451156471977e+00,
- 3.0552020742306061857212962e+00,
- 2.044238592688586588942468e+00,
- 2.5158701513104513595766636e+00,
- 1.99050839282411638174299e+00,
- 1.6988625798424034227205445e+00,
- 2.9611454842470387925531875e+00,
-];
-export const TEST_ASIN: [_]f64 = [
- 5.2117697218417440497416805e-01,
- 8.8495619865825236751471477e-01,
- -02.769154466281941332086016e-02,
- -5.2482360935268931351485822e-01,
- 1.3002662421166552333051524e+00,
- 2.9698415875871901741575922e-01,
- 5.5025938468083370060258102e-01,
- 2.7629597861677201301553823e-01,
- 1.83559892257451475846656e-01,
- -1.0523547536021497774980928e+00,
-];
-export const TEST_ASINH: [_]f64 = [
- 2.3083139124923523427628243e+00,
- 2.743551594301593620039021e+00,
- -2.7345908534880091229413487e-01,
- -2.3145157644718338650499085e+00,
- 2.9613652154015058521951083e+00,
- 1.7949041616585821933067568e+00,
- 2.3564032905983506405561554e+00,
- 1.7287118790768438878045346e+00,
- 1.3626658083714826013073193e+00,
- -2.8581483626513914445234004e+00,
-];
-export const TEST_ATAN: [_]f64 = [
- 1.372590262129621651920085e+00,
- 1.442290609645298083020664e+00,
- -2.7011324359471758245192595e-01,
- -1.3738077684543379452781531e+00,
- 1.4673921193587666049154681e+00,
- 1.2415173565870168649117764e+00,
- 1.3818396865615168979966498e+00,
- 1.2194305844639670701091426e+00,
- 1.0696031952318783760193244e+00,
- -1.4561721938838084990898679e+00,
-];
-export const TEST_ATANH: [_]f64 = [
- 5.4651163712251938116878204e-01,
- 1.0299474112843111224914709e+00,
- -2.7695084420740135145234906e-02,
- -5.5072096119207195480202529e-01,
- 1.9943940993171843235906642e+00,
- 3.01448604578089708203017e-01,
- 5.8033427206942188834370595e-01,
- 2.7987997499441511013958297e-01,
- 1.8459947964298794318714228e-01,
- -1.3273186910532645867272502e+00,
-];
-export const TEST_CEIL: [_]f64 = [
- 5.0000000000000000e+00,
- 8.0000000000000000e+00,
- -0.0000000000000000e+00,
- -5.0000000000000000e+00,
- 1.0000000000000000e+01,
- 3.0000000000000000e+00,
- 6.0000000000000000e+00,
- 3.0000000000000000e+00,
- 2.0000000000000000e+00,
- -8.0000000000000000e+00,
-];
-export const TEST_COS: [_]f64 = [
- 2.634752140995199110787593e-01,
- 1.148551260848219865642039e-01,
- 9.6191297325640768154550453e-01,
- 2.938141150061714816890637e-01,
- -9.777138189897924126294461e-01,
- -9.7693041344303219127199518e-01,
- 4.940088096948647263961162e-01,
- -9.1565869021018925545016502e-01,
- -2.517729313893103197176091e-01,
- -7.39241351595676573201918e-01,
-];
-// Results for 100000 * PI + TEST_INPUTS[i]
-export const TEST_COSLARGE: [_]f64 = [
- 2.634752141185559426744e-01,
- 1.14855126055543100712e-01,
- 9.61912973266488928113e-01,
- 2.9381411499556122552e-01,
- -9.777138189880161924641e-01,
- -9.76930413445147608049e-01,
- 4.940088097314976789841e-01,
- -9.15658690217517835002e-01,
- -2.51772931436786954751e-01,
- -7.3924135157173099849e-01,
-];
-export const TEST_COSH: [_]f64 = [
- 7.2668796942212842775517446e+01,
- 1.1479413465659254502011135e+03,
- 1.0385767908766418550935495e+00,
- 7.5000957789658051428857788e+01,
- 7.655246669605357888468613e+03,
- 9.3567491758321272072888257e+00,
- 9.331351599270605471131735e+01,
- 7.6833430994624643209296404e+00,
- 3.1829371625150718153881164e+00,
- 2.9595059261916188501640911e+03,
-];
-export const TEST_EXP: [_]f64 = [
- 1.4533071302642137507696589e+02,
- 2.2958822575694449002537581e+03,
- 7.5814542574851666582042306e-01,
- 6.6668778421791005061482264e-03,
- 1.5310493273896033740861206e+04,
- 1.8659907517999328638667732e+01,
- 1.8662167355098714543942057e+02,
- 1.5301332413189378961665788e+01,
- 6.2047063430646876349125085e+00,
- 1.6894712385826521111610438e-04,
-];
-export const TEST_EXP2: [_]f64 = [
- 3.1537839463286288034313104e+01,
- 2.1361549283756232296144849e+02,
- 8.2537402562185562902577219e-01,
- 3.1021158628740294833424229e-02,
- 7.9581744110252191462569661e+02,
- 7.6019905892596359262696423e+00,
- 3.7506882048388096973183084e+01,
- 6.6250893439173561733216375e+00,
- 3.5438267900243941544605339e+00,
- 2.4281533133513300984289196e-03,
-];
-export const TEST_ABSF: [_]f64 = [
- 4.9790119248836735e+00,
- 7.7388724745781045e+00,
- 2.7688005719200159e-01,
- 5.0106036182710749e+00,
- 9.6362937071984173e+00,
- 2.9263772392439646e+00,
- 5.2290834314593066e+00,
- 2.7279399104360102e+00,
- 1.8253080916808550e+00,
- 8.6859247685756013e+00,
-];
-export const TEST_FLOOR: [_]f64 = [
- 4.0000000000000000e+00,
- 7.0000000000000000e+00,
- -1.0000000000000000e+00,
- -6.0000000000000000e+00,
- 9.0000000000000000e+00,
- 2.0000000000000000e+00,
- 5.0000000000000000e+00,
- 2.0000000000000000e+00,
- 1.0000000000000000e+00,
- -9.0000000000000000e+00,
-];
-export const TEST_MODF: [_]f64 = [
- 4.197615023265299782906368e-02,
- 2.261127525421895434476482e+00,
- 3.231794108794261433104108e-02,
- 4.989396381728925078391512e+00,
- 3.637062928015826201999516e-01,
- 1.220868282268106064236690e+00,
- 4.770916568540693347699744e+00,
- 1.816180268691969246219742e+00,
- 8.734595415957246977711748e-01,
- 1.314075231424398637614104e+00,
-];
-export const TEST_FREXP: [_](f64, i64) = [
- (6.2237649061045918750e-01, 3),
- (9.6735905932226306250e-01, 3),
- (-5.5376011438400318000e-01, -1),
- (-6.2632545228388436250e-01, 3),
- (6.02268356699901081250e-01, 4),
- (7.3159430981099115000e-01, 2),
- (6.5363542893241332500e-01, 3),
- (6.8198497760900255000e-01, 2),
- (9.1265404584042750000e-01, 1),
- (-5.4287029803597508250e-01, 4),
-];
-export const TEST_LOG: [_]f64 = [
- 1.605231462693062999102599e+00,
- 2.0462560018708770653153909e+00,
- -1.2841708730962657801275038e+00,
- 1.6115563905281545116286206e+00,
- 2.2655365644872016636317461e+00,
- 1.0737652208918379856272735e+00,
- 1.6542360106073546632707956e+00,
- 1.0035467127723465801264487e+00,
- 6.0174879014578057187016475e-01,
- 2.161703872847352815363655e+00,
-];
-export const TEST_LOG10: [_]f64 = [
- 6.9714316642508290997617083e-01,
- 8.886776901739320576279124e-01,
- -5.5770832400658929815908236e-01,
- 6.998900476822994346229723e-01,
- 9.8391002850684232013281033e-01,
- 4.6633031029295153334285302e-01,
- 7.1842557117242328821552533e-01,
- 4.3583479968917773161304553e-01,
- 2.6133617905227038228626834e-01,
- 9.3881606348649405716214241e-01,
-];
-export const TEST_LOG2: [_]f64 = [
- 2.3158594707062190618898251e+00,
- 2.9521233862883917703341018e+00,
- -1.8526669502700329984917062e+00,
- 2.3249844127278861543568029e+00,
- 3.268478366538305087466309e+00,
- 1.5491157592596970278166492e+00,
- 2.3865580889631732407886495e+00,
- 1.447811865817085365540347e+00,
- 8.6813999540425116282815557e-01,
- 3.118679457227342224364709e+00,
-];
-export const TEST_LOG1P: []f64 = [
- 4.8590257759797794104158205e-02,
- 7.4540265965225865330849141e-02,
- -2.7726407903942672823234024e-03,
- -5.1404917651627649094953380e-02,
- 9.1998280672258624681335010e-02,
- 2.8843762576593352865894824e-02,
- 5.0969534581863707268992645e-02,
- 2.6913947602193238458458594e-02,
- 1.8088493239630770262045333e-02,
- -9.0865245631588989681559268e-02,
-];
-export const TEST_MODFRAC: [_](i64, f64) = [
- (4i64, 9.7901192488367350108546816e-01),
- (7i64, 7.3887247457810456552351752e-01),
- (-0i64, -2.7688005719200159404635997e-01),
- (-5i64, -1.060361827107492160848778e-02),
- (9i64, 6.3629370719841737980004837e-01),
- (2i64, 9.2637723924396464525443662e-01),
- (5i64, 2.2908343145930665230025625e-01),
- (2i64, 7.2793991043601025126008608e-01),
- (1i64, 8.2530809168085506044576505e-01),
- (-8i64, -6.8592476857560136238589621e-01),
-];
-export const TEST_POW: [_]f64 = [
- 9.5282232631648411840742957e+04,
- 5.4811599352999901232411871e+07,
- 5.2859121715894396531132279e-01,
- 9.7587991957286474464259698e-06,
- 4.328064329346044846740467e+09,
- 8.4406761805034547437659092e+02,
- 1.6946633276191194947742146e+05,
- 5.3449040147551939075312879e+02,
- 6.688182138451414936380374e+01,
- 2.0609869004248742886827439e-09,
-];
-export const TEST_ROUND: [_]f64 = [
- 5.0f64,
- 8.0f64,
- -0.0f64,
- -5.0f64,
- 10.0f64,
- 3.0f64,
- 5.0f64,
- 3.0f64,
- 2.0f64,
- -9.0f64,
-];
-export const TEST_SIGNF: [_]i8 = [
- 1,
- 1,
- -1,
- -1,
- 1,
- 1,
- 1,
- 1,
- 1,
- -1,
-];
-export const TEST_SIN: [_]f64 = [
- -9.6466616586009283766724726e-01,
- 9.9338225271646545763467022e-01,
- -2.7335587039794393342449301e-01,
- 9.5586257685042792878173752e-01,
- -2.099421066779969164496634e-01,
- 2.135578780799860532750616e-01,
- -8.694568971167362743327708e-01,
- 4.019566681155577786649878e-01,
- 9.6778633541687993721617774e-01,
- -6.734405869050344734943028e-01,
-];
-// Results for 100000 * PI + TEST_INPUTS[i]
-export const TEST_SINLARGE: [_]f64 = [
- -9.646661658548936063912e-01,
- 9.933822527198506903752e-01,
- -2.7335587036246899796e-01,
- 9.55862576853689321268e-01,
- -2.099421066862688873691e-01,
- 2.13557878070308981163e-01,
- -8.694568970959221300497e-01,
- 4.01956668098863248917e-01,
- 9.67786335404528727927e-01,
- -6.7344058693131973066e-01,
-];
-export const TEST_SINH: [_]f64 = [
- 7.2661916084208532301448439e+01,
- 1.1479409110035194500526446e+03,
- -2.8043136512812518927312641e-01,
- -7.499429091181587232835164e+01,
- 7.6552466042906758523925934e+03,
- 9.3031583421672014313789064e+00,
- 9.330815755828109072810322e+01,
- 7.6179893137269146407361477e+00,
- 3.021769180549615819524392e+00,
- -2.95950575724449499189888e+03,
-];
-export const TEST_SQRT: [_]f64 = [
- 2.2313699659365484748756904e+00,
- 2.7818829009464263511285458e+00,
- 5.2619393496314796848143251e-01,
- 2.2384377628763938724244104e+00,
- 3.1042380236055381099288487e+00,
- 1.7106657298385224403917771e+00,
- 2.286718922705479046148059e+00,
- 1.6516476350711159636222979e+00,
- 1.3510396336454586262419247e+00,
- 2.9471892997524949215723329e+00,
-];
-export const TEST_TAN: [_]f64 = [
- -3.661316565040227801781974e+00,
- 8.64900232648597589369854e+00,
- -2.8417941955033612725238097e-01,
- 3.253290185974728640827156e+00,
- 2.147275640380293804770778e-01,
- -2.18600910711067004921551e-01,
- -1.760002817872367935518928e+00,
- -4.389808914752818126249079e-01,
- -3.843885560201130679995041e+00,
- 9.10988793377685105753416e-01,
-];
-// Results for 100000 * PI + TEST_INPUTS[i]
-export const TEST_TANLARGE: [_]f64 = [
- -3.66131656475596512705e+00,
- 8.6490023287202547927e+00,
- -2.841794195104782406e-01,
- 3.2532901861033120983e+00,
- 2.14727564046880001365e-01,
- -2.18600910700688062874e-01,
- -1.760002817699722747043e+00,
- -4.38980891453536115952e-01,
- -3.84388555942723509071e+00,
- 9.1098879344275101051e-01,
-];
-export const TEST_TANH: [_]f64 = [
- 9.9990531206936338549262119e-01,
- 9.9999962057085294197613294e-01,
- -2.7001505097318677233756845e-01,
- -9.9991110943061718603541401e-01,
- 9.9999999146798465745022007e-01,
- 9.9427249436125236705001048e-01,
- 9.9994257600983138572705076e-01,
- 9.9149409509772875982054701e-01,
- 9.4936501296239685514466577e-01,
- -9.9999994291374030946055701e-01,
-];
-export const TEST_TRUNC: [_]f64 = [
- 4.0000000000000000e+00,
- 7.0000000000000000e+00,
- -0.0000000000000000e+00,
- -5.0000000000000000e+00,
- 9.0000000000000000e+00,
- 2.0000000000000000e+00,
- 5.0000000000000000e+00,
- 2.0000000000000000e+00,
- 1.0000000000000000e+00,
- -8.0000000000000000e+00,
-];
diff --git a/scripts/gen-stdlib b/scripts/gen-stdlib
@@ -599,10 +599,19 @@ linux_vdso() {
gen_ssa linux::vdso linux strings format::elf
}
+gensrcs_math() {
+ gen_srcs math \
+ math.ha floats.ha ints.ha uints.ha trig.ha \
+ $*
+}
+
math() {
printf '# math\n'
- gen_srcs math \
- testdata.ha math.ha floats.ha ints.ha uints.ha trig.ha
+ if [ $testing -eq 0 ]; then
+ gensrcs_math
+ else
+ gensrcs_math data+test.ha
+ fi
gen_ssa math types
}
diff --git a/stdlib.mk b/stdlib.mk
@@ -883,7 +883,6 @@ $(HARECACHE)/linux/vdso/linux_vdso.ssa: $(stdlib_linux_vdso_srcs) $(stdlib_rt) $
# math
# math
stdlib_math_srcs= \
- $(STDLIB)/math/testdata.ha \
$(STDLIB)/math/math.ha \
$(STDLIB)/math/floats.ha \
$(STDLIB)/math/ints.ha \
@@ -2138,12 +2137,12 @@ $(TESTCACHE)/linux/vdso/linux_vdso.ssa: $(testlib_linux_vdso_srcs) $(testlib_rt)
# math
# math
testlib_math_srcs= \
- $(STDLIB)/math/testdata.ha \
$(STDLIB)/math/math.ha \
$(STDLIB)/math/floats.ha \
$(STDLIB)/math/ints.ha \
$(STDLIB)/math/uints.ha \
- $(STDLIB)/math/trig.ha
+ $(STDLIB)/math/trig.ha \
+ $(STDLIB)/math/data+test.ha
$(TESTCACHE)/math/math.ssa: $(testlib_math_srcs) $(testlib_rt) $(testlib_types)
@printf 'HAREC \t$@\n'