分析Quiver分析数式構文

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

数式の構文

Quiver では、数式を使用してカスタムの数学的な式をプロットし、フィルター条件を指定できます。数式では、次の構文要素をサポートしています。

値

  • 数値: 6、3.14159、-128 などの標準的な数値に加え、Quiver は科学的表記法もサポートしています:1.602e-19。
  • プロット参照: 各プロットには、作成時にパラメーター名が割り当てられます。$ 記号を使用してプロットを参照できます。$A はパラメーター名が A のプロットを参照し、$A + $B は2つのプロットの合計を計算します。
  • ブール値: 論理演算子を使用するときは、ブール値 true と false を使用します。
  • 時刻参照: 関数 secondsSince("time") と millisecondsSince("time") を使用して、数式内で時刻を参照します。時刻を表す語句は ISO-8601 形式 ↗で指定する必要があります。たとえば、secondsSince("1970-01-01T00:00:00+00:00") は、UTC の1970年1月1日からの秒数に評価されます。
  • NaN: null など、未定義または表現できない値を表します。

出力タイプ

数式で出力できるのは数値または文字列のみで、ブール値は出力できません。また、出力は同種でなければなりません。つまり、数式はすべての評価で一貫して数値のみ、または文字列のみを出力する必要があります。

ブール値に相当する値を出力する必要がある場合は、次の代替方法を検討してください。

  • 数値を出力する場合: true には 1、false には 0 を使用します。例:$A > 0 ? 1 : 0
  • 文字列を出力する場合: 文字列 "true" と "false" を使用します。例:$A > 0 ? "true" : "false"

演算子

  • 数値演算子: Quiver は +、-、*、/ および剰余演算子 % をサポートしています。10 % 7 は 3 に評価されます。括弧 () を使用して優先順位を指定することもできます。これらの演算子は、結果として倍精度の数値を生成します。
    • ^ を使用してべき乗演算を行うことはできません。べき乗を計算するには、下記の組み込み関数の pow 関数を参照してください。
  • 比較演算子: Quiver は、等価比較に ==、不等価比較に !=、大小比較に >、<、>=、<= をサポートしています。これらの演算子は、結果としてブール値を生成します。
  • 論理演算子: 論理 AND(&&)および論理 OR(||)演算子を使用して、ブール値を組み合わせることができます。Quiver は、ブール値を反転する論理 NOT 演算子(!)もサポートしています。
  • ビット演算子: 数値に対して、ビット単位の AND(&)、OR(|)、XOR(^)、NOT(~)を実行できます。ビットシフトも実行できます。<< は左シフト、>> は符号を保持する算術右シフト、>>> は0で埋める論理右シフトです。

組み込み関数

Quiver は、次の組み込み数学関数をサポートしています。

関数名説明
abs(a)絶対値
acos(a)逆余弦
acosh(a)逆双曲線余弦
asin(a)逆正弦
asinh(a)逆双曲線正弦
atan(a)逆正接
atanh(a)逆双曲線正接
atan2(a, b)2つの数値の逆正接(4象限の逆正接)。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)自然対数
log10(a)底が10の対数
log2(a)底が2の対数
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」を表す三項演算子 a ? b : 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