JavaScript
TypeScript
BigDecimal
Decimal
bigint

多倍長精度計算ライブラリ TsBigMath


はじめに


  • github : https://github.com/hopekb/TsBigMath

  • TsBigMath は Typescript で実装した多倍長の数値を計算するためのライブラリです。

  • TsBigMath クラスは, 多倍長精度 Math 関数の static クラスです。

  • TsBigMath クラスの他, TsBigInt と TsBigFloat があり, 整数, 浮動小数が扱えます。




特徴


  • 多倍長の整数, 浮動小数を計算するための標準的で static な Math 関数の実装,


  • 簡単で簡潔な記述, 小さく短い実装,


  • Typescript による実装, 依存関係なし,




用例

import { TsBigMath } from "ts-bigmath";

for (var i = 0; i < 4; i++) {
TsBigMath.pr = 2 ** i;
console.log(`pr = ${TsBigMath.pr}`);
console.log(`eps = ${TsBigMath.eps.toStrE()}`);
console.log(`pi = ${TsBigMath.pi.toString()}`);
console.log(`pi/2 = ${TsBigMath.hpi.toString()}`);
console.log(`e = ${TsBigMath.e.toString()}`);
console.log(`exp(10) = ${TsBigMath.exp(10).toString()}`);
console.log(`ln2 = ${TsBigMath.ln2.toString()}`);
console.log(`ln3 = ${TsBigMath.ln3.toString()}`);
console.log(`ln10 = ${TsBigMath.ln10.toString()}`);
console.log(`pow(pi, 10) = ${TsBigMath.pow(TsBigMath.pi, 10).toString()}`);
console.log(`sqrt(2) = ${TsBigMath.sqrt(2).toString()}`);
console.log(`cbrt(2) = ${TsBigMath.cbrt(2).toString()}`);
console.log(`sin(pi/4) = ${TsBigMath.sin(TsBigMath.pi.mul(0.25)).toString()}`);
console.log(`cos(pi/4) = ${TsBigMath.cos(TsBigMath.pi.mul(0.25)).toString()}`);
console.log(`tan(pi/4) = ${TsBigMath.tan(TsBigMath.pi.mul(0.25)).toString()}`);
console.log(`sinh(pi/4) = ${TsBigMath.sinh(TsBigMath.pi.mul(0.25)).toString()}`);
console.log(`cosh(pi/4) = ${TsBigMath.cosh(TsBigMath.pi.mul(0.25)).toString()}`);
console.log(`tanh(pi/4) = ${TsBigMath.tanh(TsBigMath.pi.mul(0.25)).toString()}`);
console.log(`asin(0.5) = ${TsBigMath.asin(0.5).toString()}`);
console.log(`acos(0.5) = ${TsBigMath.acos(0.5).toString()}`);
console.log(`atan(10) = ${TsBigMath.atan(10).toString()}`);
console.log(`atan2(10,1) = ${TsBigMath.atan2(10, 1).toString()}`);
console.log(`asinh(1000) = ${TsBigMath.asinh(1000).toString()}`);
console.log(`acosh(1000) = ${TsBigMath.acosh(1000).toString()}`);
console.log(`atanh(0.9) = ${TsBigMath.atanh(0.9).toString()}`);
console.log(' ');
}