Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: tests/lib/math/double_pow_test.dart

Issue 283513002: Adds far-branches to arm64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/lib/lib.status ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // VMOptions=--optimization-counter-threshold=5 4 // VMOptions=--optimization-counter-threshold=5
5 5
6 library math_test; 6 library math_test;
7 import "package:expect/expect.dart"; 7 import "package:expect/expect.dart";
8 import 'dart:math'; 8 import 'dart:math';
9 9
10 void checkVeryClose(double a, double b) { 10 void checkVeryClose(double a, double b) {
11 // We find a ulp (unit in the last place) by shifting the original number 11 // We find a ulp (unit in the last place) by shifting the original number
12 // to the right. This only works if we are not too close to infinity or if 12 // to the right. This only works if we are not too close to infinity or if
13 // we work with denormals. 13 // we work with denormals.
14 // We special case or 0.0, but not for infinity. 14 // We special case for 0.0, but not for infinity.
15 if (a == 0.0) { 15 if (a == 0.0) {
16 final minimalDouble = 4.9406564584124654e-324; 16 final minimalDouble = 4.9406564584124654e-324;
17 Expect.equals(true, b.abs() <= minimalDouble); 17 Expect.equals(true, b.abs() <= minimalDouble);
18 return; 18 return;
19 } 19 }
20 if (b == 0.0) { 20 if (b == 0.0) {
21 // No need to look if they are close. Otherwise the check for 'a' above 21 // No need to look if they are close. Otherwise the check for 'a' above
22 // whould have triggered. 22 // would have triggered.
23 Expect.equals(a, b); 23 Expect.equals(a, b);
24 } 24 }
25 final double shiftRightBy52 = 2.220446049250313080847263336181640625e-16; 25 final double shiftRightBy52 = 2.220446049250313080847263336181640625e-16;
26 final double shiftedA = (a * shiftRightBy52).abs(); 26 final double shiftedA = (a * shiftRightBy52).abs();
27 // Compared to 'a', 'shiftedA' is now ~1-2 ulp. 27 // Compared to 'a', 'shiftedA' is now ~1-2 ulp.
28 28
29 final double limitLow = a - shiftedA; 29 final double limitLow = a - shiftedA;
30 final double limitHigh = a + shiftedA; 30 final double limitHigh = a + shiftedA;
31 Expect.equals(false, a == limitLow); 31 Expect.equals(false, a == limitLow);
32 Expect.equals(false, a == limitHigh); 32 Expect.equals(false, a == limitHigh);
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 // Conversion to double. 153 // Conversion to double.
154 154
155 // The second argument is an odd integer as int, but not when converted 155 // The second argument is an odd integer as int, but not when converted
156 // to double. 156 // to double.
157 Expect.identical(Infinity, pow(-0.0, -9223372036854775809)); 157 Expect.identical(Infinity, pow(-0.0, -9223372036854775809));
158 } 158 }
159 159
160 main() { 160 main() {
161 for (int i = 0; i < 10; i++) test(); 161 for (int i = 0; i < 10; i++) test();
162 } 162 }
OLDNEW
« no previous file with comments | « tests/lib/lib.status ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698