Oracle CQL には、java.lang.Math クラスに基づいた、さまざまな組み込みの関数が用意されています。
詳細については、節 1.1.9「関数」を参照してください。
表 9-1 は、Oracle CQL に用意されている組み込みの java.lang.Math 関数を示しています。
|
注意 : ストリーム入力の例で、h で始まる行 (h 3800 など) はハートビート入力タプルです。これは、ハートビート値よりも小さいタイムスタンプを持つこれ以上の入力がないことを Oracle CEP に通知します。 |
詳細については、以下を参照してください。
構文

目的
ABS は、integer の入力引数の絶対値を integer として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(int) を参照してください。
例
例 9-1 では q66 クエリを示しています。例 9-2 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-3 に示すストリームを返します。
構文

目的
ABS1 は、long の入力引数の絶対値を long として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(long) を参照してください。
例
例 9-4 では q67 クエリを示しています。例 9-5 では、スキーマ (c1 integer, c2 float, c3 long) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-6 に示すストリームを返します。
構文

目的
ABS2 は、float の入力引数の絶対値を float として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(float) を参照してください。
例
例 9-7 では q68 クエリを示しています。例 9-8 では、スキーマ (c1 integer, c2 float, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-9 に示すストリームを返します。
構文

目的
ABS3 は、double の入力引数の絶対値を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#abs(double) を参照してください。
例
例 9-10 では q69 クエリを示しています。例 9-11 では、スキーマ (c1 integer, c2 float, c3 bigint, c4 double) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-12 に示すストリームを返します。
構文

目的
ACOS は、0.0 ~ pi の範囲の、double の角度の逆余弦を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#acos(double) を参照してください。
例
例 9-13 では q73 クエリを示しています。例 9-14 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-15 に示すストリームを返します。
構文

目的
ASIN は、-pi/2 ~ pi/2 の範囲の、double の角度の逆正弦を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#asin(double) を参照してください。
例
例 9-16 では q74 クエリを示しています。例 9-17 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-18 に示すストリームを返します。
構文

目的
ATAN は、-pi/2 ~ pi/2 の範囲の、double の角度の逆正接を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan(double) を参照してください。
例
例 9-19 では q75 クエリを示しています。例 9-20 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-21 に示すストリームを返します。
構文

目的
ATAN2 は、直交座標 (x,y) を極座標 (r,theta) に変換します。
この関数は次の引数を使用します。
double1 : 縦座標。
double2 : 横座標。
この関数は、デカルト座標の点 (x,y) に対応する極座標の点 (r,theta) のシータ成分を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#atan2(double,%20double) を参照してください。
例
例 9-22 では q63 クエリを示しています。例 9-23 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-24 に示すストリームを返します。
構文

目的
CBRT は、double の引数の立方根を double として返します。
正の有限の a の場合は、cbrt(-a) == -cbrt(a) になります。つまり、負の値の立方根は、その値の大きさの立方根の負量です。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#cbrt(double) を参照してください。
例
例 9-25 では q76 クエリを示しています。例 9-26 では、スキーマ (c1 integer, c2 float, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-27 に示すストリームを返します。
構文

目的
CEIL1 は、double の引数以上であり、数学的整数に等しい double の最小 (負の無限大に最も近い) 値を返します。
丸めエラーの発生を回避するには、(long) cern.jet.math.Arithmetic.ceil(double) の使用を検討してください。
詳細については、以下を参照してください。
例
例 9-28 では q77 クエリを示しています。例 9-29 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-30 に示すストリームを返します。
構文

目的
COS は、double の角度の三角法の余弦を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#cos(double) を参照してください。
例
例 9-31 では q61 クエリを示しています。例 9-32 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-33 に示すストリームを返します。
構文

目的
COSH は、double の値の双曲線余弦を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#cosh(double) を参照してください。
例
例 9-34 では q78 クエリを示しています。例 9-35 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-36 に示すストリームを返します。
構文

目的
EXP は、オイラー数 e の double 引数を指数とする累乗を double として返します。
0 に近い値 x の場合、EXP(x) よりも EXPM1(x) + 1 の厳密な合計の方が、x を指数として累乗するオイラー数 e の実際の結果にはるかに近くなります。
詳細については、以下を参照してください。
例
例 9-37 では q79 クエリを示しています。例 9-38 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-39 に示すストリームを返します。
構文

目的
EXPM1 は、図 9-1 に示す計算を double として返します。x は double の引数、e はオイラー数です。
0 に近い値 x の場合、EXP(x) よりも EXPM1(x) + 1 の厳密な合計の方が、x を指数として累乗するオイラー数 e の実際の結果にはるかに近くなります。
詳細については、以下を参照してください。
例
例 9-40 では q80 クエリを示しています。例 9-41 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-42 に示すストリームを返します。
構文

目的
FLOOR1 は、double の引数以下であり、数学的整数に等しい double の最大 (正の無限大に最も近い) 値を返します。
丸めエラーの発生を回避するには、(long) cern.jet.math.Arithmetic.floor(double) の使用を検討してください。
詳細については、以下を参照してください。
例
例 9-43 では q81 クエリを示しています。例 9-44 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-45 に示すストリームを返します。
構文

目的
HYPOT は、double の引数の斜辺 (図 9-2 を参照) を double として返します。
この関数は次の引数を使用します。
double1 : x の値。
double2 : y の値。
斜辺の計算は、中間のオーバーフローまたはアンダーフローなく行われます。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#hypot(double,%20double) を参照してください。
例
例 9-46 では q82 クエリを示しています。例 9-47 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-48 に示すストリームを返します。
構文

目的
IEEEREMAINDER は、IEEE 754 標準の規定に従って 2 つの double の引数の剰余演算を行い、その結果を double として返します。
この関数は次の引数を使用します。
double1 : 被除数。
double2 : 除数。
剰余値は、f1 - f2 × n と数学的に等しくなります。n は、商 f1/f2 の数学的に厳密な値に最も近い数学的整数です。2 つの数学的整数が f1/f2 にどちらも等しく近い場合、n は同等の整数です。剰余が 0 の場合、符号は最初の引数の符号と同じになります。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#IEEEremainder(double,%20double) を参照してください。
例
例 9-49 では q72 クエリを示しています。例 9-50 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-51 に示すストリームを返します。
構文

目的
LOG1 は、double の値の自然対数 (底は e) を double として返します。
値 x が小さい場合、log(1.0+x) の浮動小数点評価よりも log1p(x) の結果の方が、ln(1 + x) の実際の結果にはるかに近くなります。
詳細については、以下を参照してください。
例
例 9-52 では q83 クエリを示しています。例 9-53 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-54 に示すストリームを返します。
構文

目的
LOG101 は、double の値の 10 を底とする対数を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#log10(double) を参照してください。
例
例 9-55 では q84 クエリを示しています。例 9-56 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-57 に示すストリームを返します。
構文

目的
LOG1P は、double の引数と 1 の合計の自然対数を double として返します。
値 x が小さい場合、log(1.0+x) の浮動小数点評価よりも log1p(x) の結果の方が、ln(1 + x) の実際の結果にはるかに近くなります。
詳細については、以下を参照してください。
例
例 9-58 では q85 クエリを示しています。例 9-59 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-60 に示すストリームを返します。
構文

目的
POW は、2 番目の double の引数を指数として累乗する最初の double の引数 (底) の値を double として返します。
この関数は次の引数を使用します。
double1 : 底。
double2 : 累乗の指数。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#pow(double,%20double) を参照してください。
例
例 9-61 では q65 クエリを示しています。例 9-62 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-63 に示すストリームを返します。
構文

目的
RINT は、double の引数に最も近く、数学的整数に等しい double の値を返します。数学的整数である 2 つの double の値がどちらも等しく近い場合、結果は同等の整数値になります。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#rint(double) を参照してください。
例
例 9-64 では q86 クエリを示しています。例 9-65 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-66 に示すストリームを返します。
構文

目的
ROUND は、float の引数に最も近い integer を返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#round(float) を参照してください。
例
例 9-67 では q87 クエリを示しています。例 9-68 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-69 に示すストリームを返します。
構文

目的
ROUND1 は、float の引数に最も近い integer を返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#round(float) を参照してください。
例
例 9-70 では q88 クエリを示しています。例 9-71 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-72 に示すストリームを返します。
構文

目的
SIGNUM は、double の引数の符号関数を double として返します。
引数が 0 の場合は 0 です
引数が 0 より大きい場合は 1.0 です
引数が 0 より小さい場合は -1.0 です
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#signum(double) を参照してください。
例
例 9-73 では q70 クエリを示しています。例 9-74 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-75 に示すストリームを返します。
構文

目的
SIGNUM1 は、float の引数の符号関数を float として返します。
引数が 0 の場合は 0 です
引数が 0 より大きい場合は 1.0 です
引数が 0 より小さい場合は -1.0 です
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#signum(float) を参照してください。
例
例 9-76 では q71 クエリを示しています。例 9-77 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-78 に示すリレーションを返します。
構文

目的
SIN は、double の角度の三角法の正弦を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#sin(double) を参照してください。
例
例 9-79 では q60 クエリを示しています。例 9-80 では、スキーマ (c1 integer, c2 float, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-81 に示すストリームを返します。
構文

目的
SINH は、double の値の双曲線正弦を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#sinh(double) を参照してください。
例
例 9-82 では q89 クエリを示しています。例 9-83 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-84 に示すストリームを返します。
構文

目的
SQRT は、double の値の正しく丸められた正の平方根を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#sqrt(double) を参照してください。
例
例 9-85 では q64 クエリを示しています。例 9-86 では、スキーマ (c1 integer, c2 float, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-87 に示すストリームを返します。
構文

目的
TAN は、double の角度の三角法の正接を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#tan(double) を参照してください。
例
例 9-88 では q62 クエリを示しています。例 9-89 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-90 に示すストリームを返します。
構文

目的
TANH は、double の値の双曲線正接を double として返します。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#tanh(double) を参照してください。
例
例 9-91 では q90 クエリを示しています。例 9-92 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-93 に示すストリームを返します。
構文

目的
TODEGREES は、ラジアン単位で測定される double の角度を、度数で測定されるほぼ等しい double の角度に変換します。
一般に、ラジアンから度数への変換は厳密ではありません。COS(TORADIANS(90.0)) が 0.0 に等しいと見なさないようにしてください。
詳細については、以下を参照してください。
例
例 9-94 では q91 クエリを示しています。例 9-95 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-96 に示すストリームを返します。
構文

目的
TORADIANS は、度数で測定される double の角度を、ラジアン単位で測定されるほぼ等しい double の角度に変換します。
詳細については、以下を参照してください。
例
例 9-97 では q92 クエリを示しています。例 9-98 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-99 に示すストリームを返します。
構文

目的
ULP は、double の引数の ULP の大きさを double として返します。この場合、引数値の ULP は、この浮動小数点値と次に大きい double の値との間の正の距離です。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#ulp(double) を参照してください。
例
例 9-100 では q93 クエリを示しています。例 9-101 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-102 に示すストリームを返します。
構文

目的
ULP1 は、float の引数の ULP の大きさを float として返します。float の値の ULP は、この浮動小数点値と次に大きい float の値との間の正の距離です。
詳細については、http://java.sun.com/javase/6/docs/api/java/lang/Math.html#ulp(float) を参照してください。
例
例 9-103 では q94 クエリを示しています。例 9-104 では、スキーマ (c1 integer, c2 double, c3 bigint) を持つデータ ストリーム SFunc を示しています。このクエリは、例 9-105 に示すリレーションを返します。