Files
sdk/runtime/lib/math.dart
T
dgrove@google.com 4c0f559d23 Initial checkin.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00

79 lines
2.4 KiB
Dart

// Copyright (c) 2011, 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.
class MathNatives {
static int parseInt(String str) {
if (str is !String) {
throw "Wrong argument";
}
return _parseInt(str);
}
static double parseDouble(String str) {
if (str is !String) {
throw "Wrong argument";
}
return _parseDouble(str);
}
static double sqrt(num value) {
return _sqrt(_asDouble(value));
}
static double sin(num value) {
return _sin(_asDouble(value));
}
static double cos(num value) {
return _cos(_asDouble(value));
}
static double tan(num value) {
return _tan(_asDouble(value));
}
static double acos(num value) {
return _acos(_asDouble(value));
}
static double asin(num value) {
return _asin(_asDouble(value));
}
static double atan(num value) {
return _atan(_asDouble(value));
}
static double atan2(num a, num b) {
return _atan2(_asDouble(a), _asDouble(b));
}
static double exp(num value) {
return _exp(_asDouble(value));
}
static double log(num value) {
return _log(_asDouble(value));
}
static num pow(num value, num exponent) {
if (exponent is int) {
return value.pow(exponent);
}
// Double.pow will call exponent.toDouble().
return _asDouble(value).pow(exponent);
}
static double random() {
return _random();
}
static double _asDouble(num value) {
double result = value.toDouble();
if (result is !double) {
throw "Wrong argument";
}
return result;
}
static double _random() native "MathNatives_random";
static double _sqrt(double value) native "MathNatives_sqrt";
static double _sin(double value) native "MathNatives_sin";
static double _cos(double value) native "MathNatives_cos";
static double _tan(double value) native "MathNatives_tan";
static double _acos(double value) native "MathNatives_acos";
static double _asin(double value) native "MathNatives_asin";
static double _atan(double value) native "MathNatives_atan";
static double _atan2(double a, double b) native "MathNatives_2atan";
static double _exp(double value) native "MathNatives_exp";
static double _log(double value) native "MathNatives_log";
static int _parseInt(String str) native "MathNatives_parseInt";
static double _parseDouble(String str) native "MathNatives_parseDouble";
}