Math
数学・数値計算関連の標準定数・関数にはMath:
の名前空間が付与されています。
定数
型は全てnum
です。
定数名 | 説明 | 概算値 |
---|---|---|
Math:Infinity | 無限大 | なし |
Math:E | ネイピア数 | 2.718281828459045 |
Math:LN2 | 2の自然対数 | 0.6931471805599453 |
Math:LN10 | 10の自然対数 | 2.302585092994046 |
Math:LOG2E | 2を底とした | 1.4426950408889634 |
Math:LOG10E | 10を底とした | 0.4342944819032518 |
Math:PI | 円周率 | 3.141592653589793 |
Math:SQRT1_2 | 0.7071067811865476 | |
Math:SQRT2 | 1.4142135623730951 |
基本的な関数
@Math:abs(x: num): num
絶対値を計算します。
@Math:sign(x: num): num
いずれでもなければNaNを返します。
@Math:round(x: num): num
四捨五入して、もっとも近い整数を返します。
@Math:ceil(x: num): num
引数以上の最小の整数を返します。
@Math:floor(x: num): num
引数以下の最大の整数を返します。
@Math:trunc(x: num): num
引数の小数部を切り捨て、整数部を返します。
@Math:min(a: num, b: num): num
小さい方の値を取得します。
@Math:max(a: num, b: num): num
大きい方の値を取得します。
@Math:sqrt(x: num): num
正の平方根を計算します。
@Math:cbrt(x: num): num
立方根を計算します。
@Math:hypot(vs: arr): num
vs の要素をそれぞれ自乗してから合計した値の正の平方根を返します。
三角関数
角度の単位はラジアンです。
@Math:sin(rad: num): num
正弦を計算します。
@Math:cos(rad: num): num
余弦を計算します。
@Math:tan(rad: num): num
正接を計算します。
@Math:asin(x: num): num
逆正弦を計算します。
@Math:acos(x: num): num
逆余弦を計算します。
@Math:atan(x: num): num
逆正接を計算します。
@Math:atan2(y: num, x: num): num
双曲線関数
@Math:sinh(x: num): num
双曲線正弦を計算します。
@Math:cosh(x: num): num
双曲線余弦を計算します。
@Math:tanh(x: num): num
双曲線正接を計算します。
@Math:asinh(x: num): num
双曲線逆正弦を計算します。
@Math:acosh(x: num): num
双曲線逆余弦を計算します。
@Math:atanh(x: num): num
双曲線逆正接を計算します。
指数・対数関数
@Math:pow(x: num, y: num): num
x の y 乗を計算します。内部的にJavascriptの**
演算子ではなくMath.pow
関数を用いている点を除き、ほぼCore:pow
と同じものです。
@Math:exp(x: num): num
@Math:expm1(x: num): num
@Math:log(x: num): num
自然対数を計算します。常用対数にはMath:log10
を使用して下さい。
@Math:log1p(x: num): num
x + 1の自然対数を計算します。
@Math:log10(x: num): num
10を底とした対数を計算します。
@Math:log2(x: num): num
2を底とした対数を計算します。
乱数
@Math:rnd(min?: num, max?: num): num
乱数を生成します。
min および max を渡した場合、min <= x, x <= max の整数、
渡していない場合は 0 <= x, x < 1 の 小数が返されます。
@Math:gen_rng(seed: num | str, options?: obj): @(min?: num, max?: num)
シードから乱数生成機を生成します。
生成された乱数生成器は、min および max を渡した場合、min <= x, x <= max の整数、
渡していない場合は 0 <= x, x < 1 の浮動小数点数を返します。
options に渡したオブジェクトを通じて、内部の挙動を指定できます。options.algorithm
の指定による挙動の変化は下記の通りです。
options.algorithm | 内部の乱数生成アルゴリズム | 範囲指定整数生成アルゴリズム |
---|---|---|
rc4 | RC4 | Rejection Sampling |
rc4_legacy | RC4 | 浮動小数点数演算による範囲制限(0.19.0以前のアルゴリズム) |
無指定 または 'chacha20' | ChaCha20 | Rejection Sampling |
let rng = Math:gen_rng('AICHAN')
// シード値を固定しているので、同じ条件下では毎回同じ生成パターンになる
<: rng(0, 10)
<: rng(0, 10)
<: rng(0, 10)
注意
rc4_legacy
等、浮動小数点数演算を伴う範囲指定整数生成アルゴリズムでは、演算時の丸め誤差により、指定した max の値より大きな値が生成される可能性があります。
その他
@Math:clz32(x: num): num
xを32ビットのバイナリで表現したときの先頭の0の個数を返します。
@Math:fround(x: num): num
x を32ビットの浮動小数点数に変換した時の値を返します。
@Math:imul(x: num, y: num): num
x と y に対しC言語風の32ビット乗算を行った結果を返します。