2012-03-25 5 views
5

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

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

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

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

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

+0

私はそのような実装を知りません。 –

答えて

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

3

これはofficial ecmascript-262 specificationからである:

NOTE、ASIN、ATAN、ATAN2、COS、EXP、 ログ、POW、罪、SQRT ACOS関数の動作、および日焼けが正確ではありませんここでは を除き、 の関心のある境界ケースを表す特定の引数値に対して特定の結果を要求します。他の引数値については、 関数は、 のよく知られた数学関数の結果に対する近似値を計算することを意図していますが、近似アルゴリズムの選択には若干の緯度が許されます。一般的な目的は、 の実装者が、 ECMAScriptの特定のハードウェアプラットフォームで、同じプラットフォーム上のC プログラマが利用できる同じ数学ライブラリを使用できるようにすることです。実装はfdlibmに含まれるIEEE 754算術演算のための近似アルゴリズム を使用

アルゴリズムの選択は実装に委ね であるが、それは推奨(ただし この規格によって指定されていない)されて、自由に配布 数学ライブラリーからSun Microsystems (http://www.netlib.org/fdlibm)。

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 
関連する問題