CDL関数
式には、演算子に加えて、式の残りの部分で使用できる引数と結果を返す関数を含めることができます。 すべての標準数学関数は、CDLで実装されます。
各関数の結果は、前者の戻り型が後者の引数型と一致しているかぎり、別の演算子または関数のオペランドとして参加できます。
関数は、ステートメント全体の評価に使用される引数と戻り値に対して操作を実行します。 引数が複数ある場合、関数は引数をカッコで囲み、コンマで区切る必要があります。 関数の引数には式を指定できます。
たとえば、Feature-1とFeature-2が数値機能である場合、Round関数の正しい構文は、次の両方の操作です:
Round (13.4)
Round (Feature-1 / Feature-2)
CDLでは、次の機能がサポートされています:
-
計算
-
三角法
-
論理
-
セット
-
テキスト
-
階層または複合
算術関数
次の表に、CDLで使用可能な算術関数を示します。 無限大という用語は、境界のない数値として定義されます。 正または負のいずれかです。
機能 |
説明 |
---|---|
Abs(x) |
1つの数値を引数として取り、正の値(0から+infinity)を返します。 ドメイン範囲は -infinityから+infinityまでです。 xの正の値を返します。 Abs(-12345.6)は12345.6になります |
AggregateSum(x) |
制約、デフォルトまたは検索判断で使用できますが、サブ式としてのみ使用できます。 |
Round(x) |
引数として1つの小数を取り、最も近い整数を返します。 数値ルールのA側が10進数で、10進数を受け入れるインポート済部品構成表に貢献している場合、Round(x)関数は使用できません。 Round(x)関数を使用できない理由は、B側が10進数を受け入れるため、寄与した値を丸める必要がないためです。 この機能は、部品構成表品目が整数値のみを受け入れる場合に使用できます。 |
RoundDownToNearest(x,y) |
これはバイナリ関数です。xは -infinityから+infinityまでの数値で、yは0より大きく+infinityより小さい数値です。 -infinityから+infinityまでの数値が返されます。 最初の引数は、2番目の引数のもっとも近い小さい倍数に丸められます。 たとえば、RoundDownToNearest(433,75)は375を返します。 |
RoundToNearest(x,y) |
これはバイナリ関数です。xは -infinityから+infinityまでの数値で、yは0より大きく+infinityより小さい数値です。 -infinityから+infinityまでの数値が返されます。 RoundToNearest(433,10)は430を返します。 |
RoundUpToNearest(x,y) |
これはバイナリ関数です。 xの数値は -infinityと+infinityの間であり、yの数は0より大きく、+infinityより小さい値です。 -infinityから+infinityまでの数値が返されます。 最初の引数は、2番目の引数のもっとも近い倍数に切り上げられます。 たとえば、RoundUpToNearest(34.1,0.125)は34.125を返します。 |
Ceiling(x) |
引数として1つの小数を取り、次に大きい整数を返します。 たとえば、ceiling(4.3)は5を返し、ceiling(-4.3)は -4を返します。 |
Floor(x) |
1つの10進数を引数として取り、次の下位の整数を返します。 たとえば、floor(4.3)は4を返し、floor(-4.3)は -5を返します。 |
Log(x) |
0より大きく+infinityより小さい1つの数値を取り、 -infinityから+infinityまでの数値を返します。 xの対数値を返します。 x=0の場合、エラーが発生します。 |
Log10(x) |
0より大きく+infinityより小さい1つの数値を取り、 -infinityから+infinityまでの数値を返します。 xの10を底とする対数を返します。 x=0の場合、エラーが発生します。 |
Min(x,y,z...) |
数値の引数の最小値を返します。 |
Max(x,y,z...) |
数値の引数の最大値を返します。 |
Mod(x,y) |
これはバイナリ関数です。 x/yの余りを返します。xとyは -infinityと+infinityの間の数値です。 yが0の場合、0による除算はエラーとして処理されます。 x=yの場合、結果は0になります。 たとえば、Mod(7,5)は2を返します。 |
Exp(x) |
eをx乗して返します。 -infinityから+infinityまでの1つの数値を取り、0から+infinityまでの値を返します。 |
Pow(x,y) |
これはバイナリ関数です。 xをyの累乗した結果を返します。 数字xは -infinityと+infinityの間です。 整数yは -infinityと+infinityの間であり、返される結果は -infinityと+infinityの間です。 y=0の場合、結果は1になります。 たとえば、Pow(6,2)は36を返します。 |
Sqrt(x) |
Sqrt(x)は、xの平方根を返します。 0から+infinityまでの1つの数値を取り、0から+infinityまでの値を返します。 -xを入力すると、エラーが発生します。 |
Truncate(x) |
Truncate(x)は1つの10進数xをとり、小数点以下のすべての桁を削除して切り捨てます。 たとえば、truncate(4.15678)は4を返します。 |
三角関数
次の表に、CDLで使用可能な三角関数を示します。
機能 |
摘要 |
---|---|
Sin(x) |
-infinityから+infinityまでの1つの数値xを取得し、 -1から+1までの値を返します。 |
ASin(x) |
-1から+1までの1つの数値を取り、 -pi/2から+pi/2までの値を返します。 ASin(x)は、xの逆正弦を返します。 -1から+1の範囲外の入力ではエラーが発生します。 |
Sinh(x) |
Xのサインをラジアンで返します。 -infinityから+infinityまでの1つの数値を取り、 -1から+infinityまでの値を返します。 結果がdoubleを超えると、エラーが返されます。 たとえば、sinh(-99)は有効ですが、sinh(999)はエラーになります。 |
Cos(x) |
-infinityから+infinityまでの1つの数値を取り、 -1から+1までの値を返します。 xのサインを返します。 |
ACos(x) |
-1から+1までの1つの数値を取り、0からpiまでの値を返します。 ACos(x)は、xの逆余弦を返します。 -1から+1の範囲外の入力ではエラーが発生します。 |
Cosh(x) |
-infinityから+infinityまでの1つの数値を取り、 -infinityから+infinityまでの値を返します。 Xのサインをラジアンで返します。 xがdoubleの最大値を超えると、エラーが返されます: cosh(-200)は有効ですが、cosh(-2000)はエラーになります。 |
Tan(x) |
-infinityから+infinityまでの1つの数値xを取得し、 -infinityから+infinityまでの値を返します。 |
ATan(x) |
-infinityから+infinityまでの1つの数値を取り、 -pi/2から+pi/2までの値を返します。 ATan(x)は、xの円弧タンジェントを返します。 |
Tanh(x) |
xのハイパボリックタンジェントを返します。 -infinityから+infinityまでの1つの数値xを取得し、 -1から+1までの値を返します。 |
論理関数
次の表に、CDLで使用可能な論理関数を示します。
機能 |
説明 |
---|---|
AllTrue |
論理AND式。 1つ以上の論理値または論理式を受け入れます。 すべての引数がtrueの場合はtrueを返し、引数がfalseの場合はfalseを返します。 それ以外の場合、AllTrueの値は不明です。 |
AnyTrue |
論理OR式。 1つ以上の論理値または論理式を受け入れます。 引数のいずれかがtrueの場合はtrueを返し、すべての引数がfalseの場合はfalseを返します。 それ以外の場合、AnyTrueの値は不明です。 |
NOT |
単一の論理値または式を受け入れます。 引数がFalseまたは不明な場合はTrueを返します。 引数がTrueの場合、値は不明です。
|
テキスト関数
次の表に、CDLで使用可能なテキスト関数を示します。
ノート: 任意のTEXTデータ型と同様に、CONSTRAIN文または累計文の本文で定数文字列と評価されない場合は、テキスト関数を使用しないでください。 コンパイラはこの条件を検証します。
テキスト関数は、静的コンテキスト(イテレータのWHERE句など)でのみ使用できます。
機能 |
説明 |
---|---|
次を含む |
テキスト・リテラルの2つのオペランドを比較し、最初のオペランドに2番目のオペランドが含まれている場合はtrueを返します。 |
一致 |
テキスト・リテラルの2つのオペランドを比較し、一致する場合はtrueを返します。 |
BeginsWith |
テキスト・リテラルの2つのオペランドを比較し、最初のオペランドが2番目の文字で始まる場合はtrueを返します。 |
EndsWith |
テキスト・リテラルの2つのオペランドを比較し、最初のオペランドが2番目の文字で終わる場合はtrueを返します。 |
次と等しい |
テキスト・リテラルの2つのオペランドを比較し、最初のオペランドが2番目のオペランドと等しい場合はtrueを返します。 |
NotEquals |
テキスト・リテラルの2つのオペランドを比較し、最初のオペランドが2番目のオペランドと等しくない場合はtrueを返します |
階層または複合関数
次の表に、CDLで使用可能な複合関数を示します。
機能 |
説明 |
---|---|
OptionsOf |
オプション・クラスまたは機能を引数として取得し、そのオプションを返します。 |