6

JavaScript ソースをターゲット言語に変換するトランスレータを開発しています。ターゲット言語で JavaScript の Math オブジェクトを実装しようとしています。

「Math」オブジェクトの JavaScript 実装があれば、トランスレータを使用して、ターゲット言語で同等のコードを取得できます。

私はこのようなものを探しています:

var Math = {
    pow: function(...) {...}
    exp: function(...) {...}
    /* other methods of Math */
}

利用可能なそのような実装はありますか? これは、Math オブジェクトのコードをターゲット言語で手動で記述することを避けるのに役立ちます。

4

3 に答える 3

4

math.jsのV8実装は、いくつかのガイダンスを提供する場合がありますが、もちろん、ネイティブ関数呼び出しのプレースホルダーがたくさんあります。%Math_floor(x)たとえば、ターゲット言語での適切な標準ライブラリベースの関数呼び出しに置き換えることができる必要があります。

http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/math.js?spec=svn10758&r=10758

于 2012-03-25T20:42:43.693 に答える
3

これは、公式の ecmascript-262 仕様からのものです。

: 関数 acos、asin、atan、atan2、cos、exp、log、pow、sin、sqrt、および tan の動作は、対象の境界ケースを表す特定の引数値に対して特定の結果を要求する場合を除いて、ここでは正確に指定されていません。他の引数値の場合、これらの関数は、使い慣れた数学関数の結果に対する近似を計算することを目的としていますが、近似アルゴリズムの選択にはある程度の自由度があります。一般的な意図は、実装者が、そのプラットフォーム上の C プログラマーが利用できる特定のハードウェア プラットフォーム上の ECMAScript に対して同じ数学ライブラリを使用できるようにすることです。

アルゴリズムの選択は実装に任されていますが、Sun Microsystems から自由に配布可能な数学ライブラリ ( http://www .netlib.org/fdlibm )。

于 2012-03-25T20:31:20.053 に答える
2

必要なオブジェクトは次のとおりです。

Math.exp(x) // Returns the value of Ex

Math.pow(x,y)   // Returns the value of x to the power of y

これら以外にも、Java で必要となるのに役立つものがあります。それらは

Math.PI         // returns PI
Math.random();              // returns a random number
Math.max(0, 150, 30, 20, -8, -200);      // returns 150
Math.min(0, 150, 30, 20, -8, -200);      // returns -200
Math.round(4.7);            // returns 5
Math.round(4.4);            // returns 4
于 2015-09-30T20:23:01.040 に答える