注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Quiver では、式を使用してカスタムの数学表現をプロットしたり、フィルター条件を指定したりすることができます。以下の構成要素が式でサポートされています:
6
、3.14159
、-128
などの標準的な数値に加えて、Quiver は科学的表記もサポートしています:1.602e-19
。$
記号を使用してプロットを参照できます:$A
はパラメーター名A
のプロットを参照し、$A + $B
は二つのプロットの合計を計算します。true
とfalse
を使用します。secondsSince("time")
とmillisecondsSince("time")
を使用します。時間項はISO-8601 形式でなければなりません。例えば、secondsSince("1970-01-01T00:00:00+00:00")
は、1970年1月1日からの秒数を UTC で評価します。+
、-
、*
、/
、そして余りの演算子%
をサポートしています:10 % 7
は3
を評価します。また、括弧()
を使用して優先順位を強制することもできます。これらの演算子は結果として倍精度数を生成します。
^
を使用してべき乗を行うことはできません。べき乗を行うためには、下記の 組み込み関数 のpow
関数を参照してください。==
、不等性のために!=
、そして比較のために>
, <
, >=
, <=
をサポートしています。これらの演算子は結果としてブール値を生成します。&&
)や論理 OR(||
)演算子で組み合わせることができます。Quiver はまた、ブール値を反転させる論理 NOT 演算子(!
)もサポートしています。&
)、ビット OR(|
)、ビット XOR(^
)、ビット NOT(~
)を実行することができます。また、ビットシフトも行うことができます:<<
は左シフト、>>
は符号を保持した算術右シフト、>>>
は0パディングの論理右シフトを行います。Quiver は以下の組み込み数学関数をサポートしています:
関数名 | 説明 |
---|---|
abs(a) | 絶対値 |
acos(a) | 逆余弦 |
acosh(a) | 逆双曲余弦 |
asin(a) | 逆正弦 |
asinh(a) | 逆双曲正弦 |
atan(a) | 逆正接 |
atanh(a) | 逆双曲正接 |
atan2(a, b) | 二つの数値の逆正接(四象限の逆正接);a は y 座標、b は x 座標です。 |
cbrt(a) | 立方根 |
ceil(a) | 天井関数 |
cos(a) | 余弦 |
cosh(a) | 双曲余弦 |
exp(a) | 自然指数 |
floor(a) | 床関数 |
isfinite(a) | 引数が無限でなく NaN でない場合は true |
isnan(a) | 引数が NaN の場合は true |
ln(a) | 自然対数 |
max(a, b, ...) | 与えられたすべての入力の最大値 |
min(a, b, ...) | 与えられたすべての入力の最小値 |
pow(a, b) | a の b 乗 |
round(a) | 最も近い整数に丸める |
signum(a) | 符号関数 |
sin(a) | 正弦 |
sinh(a) | 双曲正弦 |
sqrt(a) | 平方根 |
tan(a) | 正接 |
tanh(a) | 双曲正接 |
Quiver は三項演算子 a ? b : c
をサポートしており、これは “if a
then b
else c
” を表現します。例えば、各時間点で、$A > 0 ? $B * 10 : $C * 10
は、その時間に $A
の値が 0 より大きい場合は $B * 10
の値を取り、そうでない場合は $C * 10
の値を取ります。
また、入力系列で値が欠けている場所で代替値を返すために NaN
値を使用することもできます。例えば、各時間点で、@M != NaN ? @M : @K
は、@M
が数値を持つ場合は @M
の値を取り、そうでない場合は @K
の値を取ります。
“早期”に停止するために、return
と skip
のステートメントを使用し、値を返すか、値を返さないことを示すことができます(例えば、ポイントをフィルター処理するため)。
変数は var
キーワードで宣言されます。=
記号は変数に値を代入するために使用されます。変数は数値(倍精度)、ブール値、または文字列です。
var a = 6;
var b = 3.14159;
var c = 1.602e-19; // 指数表記がサポートされています
var d = 1.602E-19; // 指数は大文字と小文字を区別しません
var boolean_example = true;
var boolean_example = false; // falseに再代入
var string_example = "high";
リテラルと変数を組み合わせて、より複雑な式を作ることができます。
基本的な数学的演算子は +
、-
、*
、/
です。余りを計算するには %
を使用します。
var a = 2 + 2; // aは値4を持っています
a = 3 * 7; // aは値21を持っています
a = 3.5 / 7; // aは値0.5を持っています
a = 10 % 7; // aは値3を持っています
演算子の優先順位は予想通りです。括弧 (
)
を使用して、式をまとめることができます。
var a = 5 + 3 * 2; // aの値は11です
var b = (5 + 3) * 2; // bの値は16です
上記の5つの演算子の代入バージョンも使用できます。
var a = 10;
a *= 2; // aの値は現在20です
a += 3; // aの値は現在23です
a -= 5; // aの値は現在18です
a /= 3; // aの値は現在6です
a %= 5; // aの値は現在1です
比較演算子 <
、<=
、>
、>=
を使用して数値を比較することができます。これらの演算子はブール(true
または false
)結果を生成します。
等価性は ==
で確認でき、不等式は !=
で確認できます。
これらの式は、論理演算子 &&
と ||
で組み合わせることができます。
!
演算子を使用してブール結果を反転させることができます(true
は false
になり、false
は true
になります)。
等価性は ==
で確認でき、不等式は !=
で確認できます。
var a = "high";
var b = "low";
// 値を比較する
var c = a == a; // true(真)
var d = a != b; // true(真)