blob: bb32560cd517f17dcd55f0d307eb06b272a83d06 [file] [log] [blame]
// 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 num pow(num value, num exponent) {
if (exponent is int) {
return value.pow(exponent);
}
// Double.pow will call exponent.toDouble().
return value.toDouble().pow(exponent);
}
static double random() => _random();
static double sqrt(num value) => _sqrt(value.toDouble());
static double sin(num value) => _sin(value.toDouble());
static double cos(num value) => _cos(value.toDouble());
static double tan(num value) => _tan(value.toDouble());
static double acos(num value) => _acos(value.toDouble());
static double asin(num value) => _asin(value.toDouble());
static double atan(num value) => _atan(value.toDouble());
static double atan2(num a, num b) => _atan2(a.toDouble(), b.toDouble());
static double exp(num value) => _exp(value.toDouble());
static double log(num value) => _log(value.toDouble());
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_atan2";
static double _exp(double value) native "MathNatives_exp";
static double _log(double value) native "MathNatives_log";
}