// 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 int parseInt(String str) => _parseInt(str); static double parseDouble(String str) => _parseDouble(str); 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"; }