Implement missing Math.cbrt function from ES6 (#3680)

C implementation ported from fdlibm

Part of Issue #3568

JerryScript-DCO-1.0-Signed-off-by: Rafal Walczyna r.walczyna@samsung.com
This commit is contained in:
Rafal Walczyna
2020-04-20 15:40:03 +02:00
committed by GitHub
parent 1b01171a60
commit 453da11398
7 changed files with 186 additions and 4 deletions
+23
View File
@@ -531,6 +531,29 @@ check_double ("sqrt (4)", sqrt (4), 2.00000000000000000000E+00);
check_double ("sqrt (0.25)", sqrt (0.25), 5.00000000000000000000E-01);
check_double ("sqrt (6642.25)", sqrt (6642.25), 8.15000000000000000000E+01);
check_double ("sqrt (15239.9025)", sqrt (15239.9025), 1.23450000000000002842E+02);
check_double ("cbrt (0.0)", cbrt (0.0), 0.00000000000000000000E+00);
check_double ("cbrt (-0.0)", cbrt (-0.0), -0.00000000000000000000E+00);
check_double ("cbrt (1.0)", cbrt (1.0), 1.00000000000000000000E+00);
check_double ("cbrt (-1.0)", cbrt (-1.0), -1.00000000000000000000E+00);
check_double ("cbrt (INFINITY)", cbrt (INFINITY), INF);
check_double ("cbrt (-INFINITY)", cbrt (-INFINITY), -INF);
check_double ("cbrt (NAN)", cbrt (NAN), NAN);
check_double ("cbrt (0.7)", cbrt (0.7), 8.87904001742600645919E-01);
check_double ("cbrt (2)", cbrt (2), 1.25992104989487319067E+00);
check_double ("cbrt (10)", cbrt (10), 2.15443469003188381450E+00);
check_double ("cbrt (2.22e-308)", cbrt (2.22e-308), 2.81050475771047639693E-103);
check_double ("cbrt (2.23e-308)", cbrt (2.23e-308), 2.81471841433133404618E-103);
check_double ("cbrt (3.72e-09)", cbrt (3.72e-09), 1.54946217899915657419E-03);
check_double ("cbrt (7.37e+19)", cbrt (7.37e+19), 4.19265534205965511501E+06);
check_double ("cbrt (2209)", cbrt (2209), 1.30236256766892157799E+01);
check_double ("cbrt (4)", cbrt (4), 1.58740105196819958344E+00);
check_double ("cbrt (0.25)", cbrt (0.25), 6.29960524947436595333E-01);
check_double ("cbrt (6642.25)", cbrt (6642.25), 1.87977155063238647870E+01);
check_double ("cbrt (15239.9025)", cbrt (15239.9025), 2.47929038511971775449E+01);
check_double ("cbrt (3)", cbrt (3), 1.44224957030740830177E+00);
check_double ("cbrt (9)", cbrt (9), 2.08008382305190409056E+00);
check_double ("cbrt (-17.87)", cbrt (-17.87), -2.61441695192974155049E+00);
check_double ("cbrt (-8941)", cbrt (-8941), -2.07552848589356599973E+01);
check_double ("sin (0.0)", sin (0.0), 0.00000000000000000000E+00);
check_double ("sin (-0.0)", sin (-0.0), -0.00000000000000000000E+00);
check_double ("sin (1.0)", sin (1.0), 8.41470984807896504876E-01);