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

Unified Diff: lib/math/base.dart

Issue 10389150: - Add a math library. Currently it mostly matches the Math class in dart:core. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | lib/math/math.dart » ('j') | tests/lib/lib.status » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/math/base.dart
===================================================================
--- lib/math/base.dart (revision 0)
+++ lib/math/base.dart (revision 0)
@@ -0,0 +1,97 @@
+// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+// A part of the dart:math library.
+
+/**
+ * Base of the natural logarithms.
+ */
+final double E = 2.718281828459045;
+
+/**
+ * Natural logarithm of 10.
+ */
+final double LN10 = 2.302585092994046;
+
+/**
+ * Natural logarithm of 2.
+ */
+final double LN2 = 0.6931471805599453;
+
+/**
+ * Base-2 logarithm of E.
+ */
+final double LOG2E = 1.4426950408889634;
+
+/**
+ * Base-10 logarithm of E.
+ */
+final double LOG10E = 0.4342944819032518;
+
+/**
+ * The PI constant.
+ */
+final double PI = 3.1415926535897932;
+
+/**
+ * Square root of 1/2.
+ */
+final double SQRT1_2 = 0.7071067811865476;
+
+/**
+ * Square root of 2.
+ */
+final double SQRT2 = 1.4142135623730951;
+
+/**
+ * Parses a [String] representation of an [int], and returns
+ * an [int]. Throws a [BadNumberFormatException] if [str]
+ * cannot be parsed as an [int].
+ */
+int parseInt(String str) => MathNatives.parseInt(str);
+
+/**
+ * Parses a [String] representation of a [double], and returns
+ * a [double]. Throws a [BadNumberFormatException] if [str] cannot
+ * be parsed as a [double].
+ */
+double parseDouble(String str) => MathNatives.parseDouble(str);
+
+num min(num a, num b) {
+ int c = a.compareTo(b);
+ if (c == 0) return a;
+ if (c < 0) {
+ if ((b is double) && b.isNaN()) return b;
+ return a;
+ }
+ if ((a is double) && a.isNaN()) return a;
+ return b;
+}
+
+num max(num a, num b) {
+ // NaNs are handled correctly since the compareTo function always considers
+ // them to be bigger than any other operand.
+ return (a.compareTo(b) < 0) ? b : a;
+}
+
+/**
+ * Returns the arc tangent of [a]/[b] with sign according to quadrant.
+ */
+double atan2(num a, num b) => MathNatives.atan2(a, b);
+
+/**
+ * If the [exponent] is an integer the result is of the same type as [x].
+ * Otherwise it is a [double].
+ */
+num pow(num x, num exponent) => MathNatives.pow(x, exponent);
+
+double sin(num x) => MathNatives.sin(x);
+double cos(num x) => MathNatives.cos(x);
+double tan(num x) => MathNatives.tan(x);
+double acos(num x) => MathNatives.acos(x);
+double asin(num x) => MathNatives.asin(x);
+double atan(num x) => MathNatives.atan(x);
+double sqrt(num x) => MathNatives.sqrt(x);
+double exp(num x) => MathNatives.exp(x);
+double log(num x) => MathNatives.log(x);
« no previous file with comments | « no previous file | lib/math/math.dart » ('j') | tests/lib/lib.status » ('J')

Powered by Google App Engine
This is Rietveld 408576698