]>
Commit | Line | Data |
---|---|---|
ed1e77d3 A |
1 | // Basic cases of Math.sqrt(). |
2 | function sqrtOnInteger(radicand) { | |
3 | return Math.sqrt(radicand); | |
4 | } | |
5 | noInline(sqrtOnInteger); | |
6 | ||
7 | function testSquareRoot16() { | |
8 | for (var i = 0; i < 10000; ++i) { | |
9 | var result = sqrtOnInteger(16); | |
10 | if (result !== 4) | |
11 | throw "sqrtOnInteger(16) = " + result + ", expected 4"; | |
12 | } | |
13 | } | |
14 | testSquareRoot16(); | |
15 | ||
16 | var sqrtOnIntegerNegativeNumber = sqrtOnDouble(-4); | |
17 | if (!isNaN(sqrtOnIntegerNegativeNumber)) | |
18 | throw "sqrtOnDouble(-4) = " + sqrtOnIntegerNegativeNumber + ", expected NaN"; | |
19 | ||
20 | var sqrtOnIntegerFallback = sqrtOnInteger(Math.PI); | |
21 | if (sqrtOnIntegerFallback != 1.7724538509055159) | |
22 | throw "sqrtOnInteger(Math.PI) = " + sqrtOnIntegerFallback + ", expected 1.7724538509055159"; | |
23 | ||
24 | ||
25 | function sqrtOnDouble(radicand) { | |
26 | return Math.sqrt(radicand); | |
27 | } | |
28 | noInline(sqrtOnDouble); | |
29 | ||
30 | function testSquareRootDouble() { | |
31 | for (var i = 0; i < 10000; ++i) { | |
32 | var result = sqrtOnInteger(Math.LN2); | |
33 | if (result !== 0.8325546111576977) | |
34 | throw "sqrtOnInteger(Math.LN2) = " + result + ", expected 0.8325546111576977"; | |
35 | } | |
36 | } | |
37 | testSquareRootDouble(); | |
38 | ||
39 | var sqrtOnDoubleNegativeNumber = sqrtOnDouble(-Math.PI); | |
40 | if (!isNaN(sqrtOnDoubleNegativeNumber)) | |
41 | throw "sqrtOnDouble(-Math.PI) = " + sqrtOnDoubleNegativeNumber + ", expected NaN"; | |
42 | ||
43 | var sqrtOnDoubleFallback = sqrtOnDouble(4); | |
44 | if (sqrtOnDoubleFallback !== 2) | |
45 | throw "sqrtOnDouble(4) = " + sqrtOnDoubleFallback + ", expected 2"; |