科学計算

Curl® 言語には、科学計算を実装する以下のプリミティブがあります。

log

プリミティブ:log
要約:対数関数
構文:{log base, number}
引数:base - float として評価される式。対数の底数です。
number - float として評価される式。対数を得るための値です。
戻り値:対数。戻り値のデータ型は float です。
引数の 1 つが負の場合、または両方の引数が 0 の場合は not-a-number を返します。number が 0 で base が 1 より小さい場合は、infinity を返します。number が 0 で base が 1 以上の場合は -infinity を返します。
説明:底数 base に対する number の対数を返します。
例:

例: log
The base 3 log of 9 is {log 3, 9}
{br} The base 9 log of 3 is {log 9, 3}
{br} The base 10 log of 1000 is {log 10, 1000}
参照:API リファレンスの loglog2log10, logbln
開発者ガイドの log2log10logbln

log2

プリミティブ:log2
要約:対数関数、底数 2
構文:{log2 number}
引数:number - float として評価される式。対数を得るための値です。
戻り値:対数。戻り値のデータ型は float です。
number が負の場合 not-a-number を返します。number が 0 の場合 -infinity を返します。
説明:number の底数 2 の対数を返します。
例:

例: log2
{text The base 2 logarithm of 10 is {log2 10}.}
参照:API リファレンス マニュアルの log, log2, log10, logb, ln
開発者ガイドの loglog10logbln

log10

プリミティブ:log10
要約:対数関数、底数 10
構文:{log number}
引数:number - float として評価される式。対数を得るための値です。
戻り値:対数。戻り値のデータ型は float です。
number が負の場合 not-a-number を返します。number が 0 の場合 -infinity を返します。
説明:number の底数 10 の対数を返します。
例:

例: log10
The base 10 log of 1000 is {log10 1000}
参照:API リファレンス マニュアルの loglog2log10logbln
開発者ガイドの loglog2logbln

logb

プリミティブ:logb
要約:非偏り指数
構文:{logb number}
引数:number - float として評価される式。非偏り指数を得るための値です。
戻り値:非偏り指数。戻り値のデータ型は double です。
説明:number の非偏り指数を返します。
例:

例: logb
The exponent 0.0 is... {logb 0.0}
{br} logb of 100.0 is {logb 100.0}
{br} logb of infinity is {logb infinity}
参照:API リファレンス マニュアルの loglog2log10logbln
開発者ガイドの loglog2log10ln

ln

プリミティブ:ln
要約:自然対数関数
構文:{ln number}
引数:number - float として評価される式。対数を得るための値です。
戻り値:対数。戻り値のデータ型は float です。
説明:number の自然対数を返します。
例:

例: ln
{import e from CURL.LANGUAGE.MATH-CONSTANT}

The natural logarithm of:
    {br}0.0 is... {ln 0.0}
    {br}1.0 is... {ln 1.0}
    {br}e is... {ln e}
    {br}1000 is... {ln 1000}
    {br}-1000 is... {ln -1000}
注:- number は正の数である必要があります。
- number には数量を指定できません。
参照:API リファレンス マニュアルの loglog2log10logbln
開発者ガイドの loglog2log10logb

exp

プリミティブ:exp
要約:指数関数
構文:{exp number}
引数:number - float として評価される式。指数関数を得るための値です。
戻り値:指数関数の値戻り値のデータ型は float です。
説明:引数の指数関数を返します。この指数関数は、数学定数 e の number 乗です。
例:

例: exp
The exponential function of:
    {br}1.0 is... {exp 1.0}
    {br}-1.0 is... {exp -1.0}
    {br}10.0 is... {exp 10.0}
    {br}ln 10.0 is... {exp {ln 10.0}}
注:number は数量以外を指定します。
参照:API リファレンス マニュアルの exp

ldexp

プリミティブ:ldexp
要約:2 の累乗によるスケール
構文:{ldexp number, scale}
引数:number - スケールを得る値。float または数量として評価される式を指定できます。
scale - number をスケールするための 2 の累乗の int。正の整数は number の絶対値が増加し、負の整数では減少します。
戻り値:number に 2 を scale 回かけた計算結果。結果は常に float または数量です。
例:

例: ldexp
{text 1.0 * 2^3 is... {ldexp 1.0, 3}
    {br} 1.0 * 2^-3 is... {ldexp 1.0, -3}
    {br} 1.0 seconds * 2^3 is... {ldexp 1.0s, 3}
}
参照:API リファレンス マニュアルの ldexp

frexp

プリミティブ:frexp
要約:正規化分数と指数の値
構文:{frexp number}
引数:number - float または数量として評価される式。正規化分数および指数に分割される値です。
戻り値:2 つの値:fractionexponent。最初の戻り値 fractionnumber の正規化分数コンポーネントを保持します。number が数量の場合、fraction は同じ単位を持つ数量になります。2 番目の戻り値 exponent は 2 の累乗のスケール因数であるため、fraction に 2 の exponent 乗をかけたものは number と等しくなります。
説明:有限数の非ゼロ値の場合、fraction は常に 0.5 (含む) から 1.0 (含まない) の範囲の値で、number の符号を保持します。exponent は 2 の累乗のスケール因数でるため、fraction に 2 の exponent 乗を掛けたものは number と等しくなります。値が 0 、infinitenot-a-number の場合、fractionnumber と同じ値、exponent は 0 になります。
例:

例: frexp
{let (fraction:any, exponent:any) = {frexp 1.384e20}}
{text For the value 1.384e20, the fraction is
    {value fraction} and the exponent is
    {value exponent}.}
参照:API リファレンス マニュアルの frexp

pow

プリミティブ:pow
要約:指数関数
構文:{pow base, exponent}
引数:base - float または数量として評価される式。累乗される数です。
exponent - float として評価される式。指数です。
戻り値:baseexponent 乗。戻り値のデータ型は float です。
base が負の場合、not-a-number を返します。
説明:baseexponent 乗を返します。
例:

例: pow
{text 2 raised to the power of 0 is {pow 2, 0}.
    {br}2 raised to the power of 1 is {pow 2, 1}.
    {br}2 raised to the power of 2 is {pow 2, 2}.
    {br}2 raised to the power of 3 is {pow 2, 3}.
    {br}2 meters raised to the power of 2 is {pow 2m, 2}.
}
参照:API リファレンス マニュアルの pow

sqrt

プリミティブ:sqrt
要約:平方根
構文:{sqrt number}
引数:number - float または数量として評価される式。負の数は指定できません。
戻り値:number の平方根。戻り値のデータ型は float または数量で、number のデータ型に依存します。
説明:number の平方根を返します。
例:

例: sqrt
{text The square root of 4 is {sqrt 4}.
    {br}The square root of 2 to the power of 2 is {sqrt {pow 2, 2}}.
    {br}The square root of 4 meters squared is {sqrt 4(m^2)}.
}
参照:API リファレンス マニュアルの sqrt

signum

プリミティブ:signum
要約:数の符号を決定
構文:{signum number}
引数:number - 数値式。
戻り値:number が 0 より小さい場合、この演算子は -1 を返し、number が 0 の場合は 0 を返し、number が 0 より大きい場合は 1 を返します。
例:

例: signum
{text {signum -2}
    {br}{signum -2.0}
    {br}{signum 0}
    {br}{signum 2}
}
参照:API リファレンス マニュアルの signum

copysign

プリミティブ:copysign
要約:数の符号をコピー
構文:{copysign number1, number2}
引数:number1 - 数値式。符号を設定する数値です。
number2 - 数値式。コピーする符号を持つ数値です。
戻り値:number1 を返しますが、その符号は number2 の符号と同じになります。戻り値は常に float または数量です。
例:

例: copysign
{copysign 1.0, -0.0}
{br}{copysign 1.0, 0.0}
{br}{copysign -1.0, 0.0}
参照:API リファレンス マニュアルの copysign

interpolate

プリミティブ:interpolate
要約:補間関数
構文:{interpolate value1, alpha-value, value2}
引数:value1 - float または数量として評価される式。
alpha-value - Fraction として評価される式。
value2 - float または数量として評価される式。
戻り値:補間関数の結果。戻り値のデータ型は float または数量で、value1value2 のデータ型に依存します。
説明:引数の補間関数を返します。
value1 * (1 - alpha-value) + value2 * alpha-value
この関数では次の構文も使用できます。
value1 + alpha-value(value2 - value1)
例:

例: interpolate
{text {interpolate 10m, 0.3, 20m} should be 13 meters.}
参照:API リファレンス マニュアルの interpolate