[前へ] [目次へ] [次へ]

MathProcessor (ネイティブクラス)


このクラスは数値配列に対する算術演算処理を一括実行するクラスです。
算術演算はFGESでも実行できますが、
このクラスで実行すると高速なネイティブコードで処理することができます。


●継承

   このクラスは継承をしていません。

●インターフェイスとインターフェイスメソッド

   このクラスはインターフェイスの実装宣言をしていません。

●クラスメソッド

   このクラスはクラスメソッドを持っていません。

●クラスメンバメソッド

名前概要
public操作メソッドconst ApplyIntArray整数配列に処理を一括実行します
public操作メソッドconst ApplyFloatArray小数配列に処理を一括実行します
public操作メソッド Reset設定している演算を全て削除します
public操作メソッド PushSet「変数代入」を追加します
public操作メソッド PushSetC「定数代入」を追加します
public操作メソッド PushAdd「変数加算」を追加します
public操作メソッド PushAddC「定数加算」を追加します
public操作メソッド PushSub「変数減算」を追加します
public操作メソッド PushSubC「定数減算」を追加します
public操作メソッド PushMul「変数乗算」を追加します
public操作メソッド PushMulC「定数乗算」を追加します
public操作メソッド PushDiv「変数除算」を追加します
public操作メソッド PushDivC「定数除算」を追加します
public操作メソッド PushMod「変数剰余」を追加します
public操作メソッド PushModC「定数剰余」を追加します
public操作メソッド PushSin「変数でsin」を追加します
public操作メソッド PushSinC「定数でsin」を追加します
public操作メソッド PushCos「変数でcos」を追加します
public操作メソッド PushCosC「定数でcos」を追加します
public操作メソッド PushTan「変数でtan」を追加します
public操作メソッド PushTanC「定数でtan」を追加します
public操作メソッド PushAsin「変数でasin」を追加します
public操作メソッド PushAsinC「定数でasin」を追加します
public操作メソッド PushAcos「変数でacos」を追加します
public操作メソッド PushAcosC「定数でacos」を追加します
public操作メソッド PushAtan「変数でatan」を追加します
public操作メソッド PushAtanC「定数でatan」を追加します
public操作メソッド PushAtan2「atan2」を追加します
public操作メソッド PushLog「変数でlog」を追加します
public操作メソッド PushLogC「定数でlog」を追加します
public操作メソッド PushLoge「eを底とするlog」を追加します
public操作メソッド PushLog10「10を底とするlog」を追加します
public操作メソッド PushSquare「二乗」を追加します
public操作メソッド PushCubic「三乗」を追加します
public操作メソッド PushSqrt「平方根」を追加します
public操作メソッド PushCbrt「立方根」を追加します
public操作メソッド PushExp「指数」を追加します
public操作メソッド PushPow「変数で累乗」を追加します
public操作メソッド PushPowC「定数で累乗」を追加します
public操作メソッド PushDeg2Rad「度単位をラジアンへ変換」を追加します
public操作メソッド PushRad2Deg「ラジアンを度単位へ変換」を追加します
public操作メソッド PushDistance「ユークリッド距離」を追加します
public操作メソッド PushDiffAngle「変数で角度差」を追加します
public操作メソッド PushDiffAngleC「定数で角度差」を追加します
public操作メソッド PushAngle2XDir「角度をX軸進行方向へ変換」を追加します
public操作メソッド PushAngle2YDir「角度をY軸進行方向へ変換」を追加します
public操作メソッド PushSgn「符号方向」を追加します
public操作メソッド PushMin「変数比較して小さい方」を追加します
public操作メソッド PushMinC「定数比較して小さい方」を追加します
public操作メソッド PushMax「変数比較して大きい方」を追加します
public操作メソッド PushMaxC「定数比較して大きい方」を追加します
public操作メソッド PushAbs「絶対値」を追加します
public操作メソッド PushFloor「端数切捨て」を追加します
public操作メソッド PushCeil「端数切り上げ」を追加します
public操作メソッド PushRound「四捨五入」を追加します
public操作メソッド PushFloorM「倍数単位端数切捨て(整数)」を追加します
public操作メソッド PushFloorMF「倍数単位端数切捨て(小数)」を追加します
public操作メソッド PushFloorMC「倍数単位端数切捨て(整数)」を追加します
public操作メソッド PushFloorMFC「倍数単位端数切捨て(小数)」を追加します
public操作メソッド PushCeilM「倍数単位端数切り上げ(整数)」を追加します
public操作メソッド PushCeilMF「倍数単位端数切り上げ(小数)」を追加します
public操作メソッド PushCeilMC「倍数単位端数切り上げ(整数)」を追加します
public操作メソッド PushCeilMFC「倍数単位端数切り上げ(小数)」を追加します
public操作メソッド PushRoundM「倍数単位四捨五入(整数)」を追加します
public操作メソッド PushRoundMF「倍数単位四捨五入(小数)」を追加します
public操作メソッド PushRoundMC「倍数単位四捨五入(整数)」を追加します
public操作メソッド PushRoundMFC「倍数単位四捨五入(小数)」を追加します
public操作メソッド PushRandom「変数でランダム整数」を追加します
public操作メソッド PushRandomC「定数でランダム整数」を追加します
public操作メソッド PushRandomF「変数でランダム小数」を追加します
public操作メソッド PushRandomFC「定数でランダム小数」を追加します
public操作メソッド PushOr「変数でOR」を追加します
public操作メソッド PushOrC「定数でOR」を追加します
public操作メソッド PushAnd「変数でAND」を追加します
public操作メソッド PushAndC「定数でAND」を追加します
public操作メソッド PushXor「変数でXOR」を追加します
public操作メソッド PushXorC「定数でXOR」を追加します
public操作メソッド PushLShift「変数で左シフト」を追加します
public操作メソッド PushLShiftC「定数で左シフト」を追加します
public操作メソッド PushRShift「変数で右シフト」を追加します
public操作メソッド PushRShiftC「定数で右シフト」を追加します

●クラス共有変数

   このクラスはクラス共有変数を持っていません。

●インスタンス変数

   このクラスはインスタンス変数を持っていません。


●C++レベル追加情報

クラスID: FGES_CLASSID_MATHPROCESSOR
クラス名: FGESMathProcessor



MathProcessor::ApplyIntArray

public void ApplyIntArray(editable PIntArray target)const

   target に対してこのオブジェクトに設定されている演算を追加した順序で実行します。
   target が演算に必要な要素数を持っていない場合、例外を投入します。

editable PIntArray target :[入出力]処理対象の整数配列。

先頭へ


MathProcessor::ApplyFloatArray

public void ApplyFloatArray(editable PFloatArray target)const

   target に対してこのオブジェクトに設定されている演算を追加した順序で実行します。
   target が演算に必要な要素数を持っていない場合、例外を投入します。

editable PFloatArray target :[入出力]処理対象の小数配列。

先頭へ


MathProcessor::Reset

public void Reset()

   このオブジェクトに設定済みの全ての演算を削除します。

先頭へ


MathProcessor::PushSet

public void PushSet( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index])
[概念]   target[lindex]=target[value_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :設定する値となる要素番号。

先頭へ


MathProcessor::PushSetC

public void PushSetC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,value)
[概念]   target[lindex]=value


IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :設定する値。

先頭へ


MathProcessor::PushAdd

public void PushAdd( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]+target[value_index])
[概念]   target[lindex]+=target[value_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushAddC

public void PushAddC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]+value)
[概念]   target[lindex]+=value


IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :右辺値。

先頭へ


MathProcessor::PushSub

public void PushSub( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]-target[value_index])
[概念]   target[lindex]-=target[value_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushSubC

public void PushSubC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]-value)
[概念]   target[lindex]-=value


IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :右辺値。

先頭へ


MathProcessor::PushMul

public void PushMul( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]*target[value_index])
[概念]   target[lindex]*=target[value_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushMulC

public void PushMulC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]*value)
[概念]   target[lindex]*=value


   value が端数を持つ場合、整数配列への適用時は Float で演算後整数に変換します。

IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :右辺値。

先頭へ


MathProcessor::PushDiv

public void PushDiv( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]/target[value_index])
[概念]   target[lindex]/=target[value_index]


   0除算が発生した場合は不定の値が出力されます(例外にはなりません)。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushDivC

public void PushDivC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]/value)
[概念]   target[lindex]/=value


   0除算が発生した場合は不定の値が出力されます(例外にはなりません)。
   value が端数を持つ場合、整数配列への適用時は Float で演算後整数に変換します。

IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :右辺値。

先頭へ


MathProcessor::PushMod

public void PushMod( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]%target[value_index])
[概念]   target[lindex]%=target[value_index]


   0除算が発生した場合は不定の値が出力されます(例外にはなりません)。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushModC

public void PushModC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]%value)
[概念]   target[lindex]%=value


   0除算が発生した場合は不定の値が出力されます(例外にはなりません)。
   value が端数を持つ場合、整数配列への適用時は Float で演算後整数に変換します。

IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :右辺値。

先頭へ


MathProcessor::PushSin

public void PushSin( IInteger lindex, IInteger rad_angle_index, IInteger r_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::SinR(target[rad_angle_index],target[r_index]))
[概念]   target[lindex]=sin(target[rad_angle_index])*target[r_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :角度となる要素番号。
IInteger r_index :半径となる要素番号。

先頭へ


MathProcessor::PushSinC

public void PushSinC( IInteger lindex, IInteger rad_angle_index, IFloat r)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::SinR(target[rad_angle_index],r))
[概念]   target[lindex]=sin(target[rad_angle_index])*r


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :角度となる要素番号。
IFloat r :半径。

先頭へ


MathProcessor::PushCos

public void PushCos( IInteger lindex, IInteger rad_angle_index, IInteger r_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::CosR(target[rad_angle_index],target[r_index]))
[概念]   target[lindex]=cos(target[rad_angle_index])*target[r_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :角度となる要素番号。
IInteger r_index :半径となる要素番号。

先頭へ


MathProcessor::PushCosC

public void PushCosC( IInteger lindex, IInteger rad_angle_index, IFloat r)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::CosR(target[rad_angle_index],r))
[概念]   target[lindex]=cos(target[rad_angle_index])*r


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :角度となる要素番号。
IFloat r :半径。

先頭へ


MathProcessor::PushTan

public void PushTan( IInteger lindex, IInteger rad_angle_index, IInteger r_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Tan(target[rad_angle_index])*target[r_index])
[概念]   target[lindex]=tan(target[rad_angle_index])*target[r_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :角度となる要素番号。
IInteger r_index :半径となる要素番号。

先頭へ


MathProcessor::PushTanC

public void PushTanC( IInteger lindex, IInteger rad_angle_index, IFloat r)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Tan(target[rad_angle_index])*r)
[概念]   target[lindex]=tan(target[rad_angle_index])*r


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :角度となる要素番号。
IFloat r :半径。

先頭へ


MathProcessor::PushAsin

public void PushAsin( IInteger lindex, IInteger value_index, IInteger r_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::AsinR(target[value_index],target[r_index]))
[概念]   target[lindex]=asin((target[value_index]/target[r_index]).Clamp(-1,1))


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IInteger r_index :半径となる要素番号。

先頭へ


MathProcessor::PushAsinC

public void PushAsinC( IInteger lindex, IInteger value_index, IFloat r)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::AsinR(target[value_index],r))
[概念]   target[lindex]=asin((target[value_index]/r).Clamp(-1,1))


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IFloat r :半径。

先頭へ


MathProcessor::PushAcos

public void PushAcos( IInteger lindex, IInteger value_index, IInteger r_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::AcosR(target[value_index],target[r_index]))
[概念]   target[lindex]=acos((target[value_index]/target[r_index]).Clamp(-1,1))


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IInteger r_index :半径となる要素番号。

先頭へ


MathProcessor::PushAcosC

public void PushAcosC( IInteger lindex, IInteger value_index, IFloat r)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::AcosR(target[value_index],r))
[概念]   target[lindex]=acos((target[value_index]/r).Clamp(-1,1))


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IFloat r :半径。

先頭へ


MathProcessor::PushAtan

public void PushAtan( IInteger lindex, IInteger value_index, IInteger r_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Atan(target[value_index]/target[r_index]))
[概念]   target[lindex]=atan(target[value_index]/target[r_index])


   y/x を入力値として使用する場合は r を1にしてください。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IInteger r_index :半径となる要素番号。

先頭へ


MathProcessor::PushAtanC

public void PushAtanC( IInteger lindex, IInteger value_index, IFloat r)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Atan(target[value_index]/r))
[概念]   target[lindex]=atan(target[value_index]/r)


   y/x を入力値として使用する場合は r を1にしてください。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IFloat r :半径。

先頭へ


MathProcessor::PushAtan2

public void PushAtan2( IInteger lindex, IInteger y_index, IInteger x_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Atan2(target[y_index],target[x_index]))
[概念]   target[lindex]=atan2(target[y_index],target[x_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger y_index :Y座標となる要素番号。
IInteger x_index :X座標となる要素番号。

先頭へ


MathProcessor::PushLog

public void PushLog( IInteger lindex, IInteger value_index, IInteger base_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Log(target[value_index],target[base_index]))
[概念]   target[lindex]=log(target[value_index],target[base_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IInteger base_index :底となる要素番号。

先頭へ


MathProcessor::PushLogC

public void PushLogC( IInteger lindex, IInteger value_index, IFloat base)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Log(target[value_index],base))
[概念]   target[lindex]=log(target[value_index],base)


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IFloat base :底。

先頭へ


MathProcessor::PushLoge

public void PushLoge( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Loge(target[value_index]))
[概念]   target[lindex]=loge(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushLog10

public void PushLog10( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Log10(target[value_index]))
[概念]   target[lindex]=log10(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushSquare

public void PushSquare( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Sq())
[概念]   target[lindex]=target[value_index]*target[value_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushCubic

public void PushCubic( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Cb())
[概念]   target[lindex]=target[value_index]*target[value_index]*target[value_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushSqrt

public void PushSqrt( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Sqrt())
[概念]   target[lindex]=sqrt(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushCbrt

public void PushCbrt( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Cbrt())
[概念]   target[lindex]=cbrt(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushExp

public void PushExp( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Exp(target[value_index]))
[概念]   target[lindex]=exp(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushPow

public void PushPow( IInteger lindex, IInteger value_index, IInteger exp_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Pow(target[value_index],target[exp_index]))
[概念]   target[lindex]=pow(target[value_index],target[exp_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IInteger exp_index :指数となる要素番号。

先頭へ


MathProcessor::PushPowC

public void PushPowC( IInteger lindex, IInteger value_index, IFloat exp)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Pow(target[value_index],exp))
[概念]   target[lindex]=pow(target[value_index],exp)


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。
IFloat exp :指数。

先頭へ


MathProcessor::PushDeg2Rad

public void PushDeg2Rad( IInteger lindex, IInteger degree_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Deg2Rad(target[degree_index]))
[概念]   target[lindex]=target[degree_index]*PI/180


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger degree_index :入力値となる要素番号。

先頭へ


MathProcessor::PushRad2Deg

public void PushRad2Deg( IInteger lindex, IInteger radian_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Rad2Deg(target[radian_index]))
[概念]   target[lindex]=target[radian_index]*180/PI


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger radian_index :入力値となる要素番号。

先頭へ


MathProcessor::PushDistance

public void PushDistance( IInteger lindex, IInteger x_index, IInteger y_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Distance(target[x_index],target[y_index]))
[概念]   target[lindex]=sqrt(target[x_index]*target[x_index]+target[y_index]*target[y_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger x_index :X座標となる要素番号。
IInteger y_index :Y座標となる要素番号。

先頭へ


MathProcessor::PushDiffAngle

public void PushDiffAngle( IInteger lindex, IInteger rad_origin_index, IInteger rad_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::DiffAngle(target[rad_origin_index],target[rad_index]))
[概念]   target[lindex]=normalize(target[rad_index]-target[rad_origin_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_origin_index :基準角度となる要素番号。
IInteger rad_index :計算角度となる要素番号。

先頭へ


MathProcessor::PushDiffAngleC

public void PushDiffAngleC( IInteger lindex, IInteger rad_origin_index, IFloat rad_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::DiffAngle(target[rad_origin_index],rad_value))
[概念]   target[lindex]=normalize(rad_value-target[rad_origin_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_origin_index :基準角度となる要素番号。
IFloat rad_value :計算角度。

先頭へ


MathProcessor::PushAngle2XDir

public void PushAngle2XDir( IInteger lindex, IInteger rad_angle_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Angle2XDir(target[rad_angle_index]))
[概念]   target[lindex]=if(cos(target[rad_angle_index])<0){-1}
                        if(cos(target[rad_angle_index])==0){0}
                        if(cos(target[rad_angle_index])>0){1}


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :計算角度となる要素番号。

先頭へ


MathProcessor::PushAngle2YDir

public void PushAngle2YDir( IInteger lindex, IInteger rad_angle_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::Angle2YDir(target[rad_angle_index]))
[概念]   target[lindex]=if(sin(target[rad_angle_index])<0){-1}
                        if(sin(target[rad_angle_index])==0){0}
                        if(sin(target[rad_angle_index])>0){1}


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger rad_angle_index :計算角度となる要素番号。

先頭へ


MathProcessor::PushSgn

public void PushSgn( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Sgn())
[概念]   target[lindex]=if(target[value_index]<0){-1}
                        if(target[value_index]==0){0}
                        if(target[value_index]>0){1}


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :計算角度となる要素番号。

先頭へ


MathProcessor::PushMin

public void PushMin( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::MinF(target[lindex],target[value_index]))
[概念]   target[lindex]=min(target[lindex],target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushMinC

public void PushMinC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::MinF(target[lindex],value))
[概念]   target[lindex]=min(target[lindex],value)


IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :入力値。

先頭へ


MathProcessor::PushMax

public void PushMax( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::MaxF(target[lindex],target[value_index]))
[概念]   target[lindex]=max(target[lindex],target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushMaxC

public void PushMaxC( IInteger lindex, IFloat value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,Math::MaxF(target[lindex],value))
[概念]   target[lindex]=max(target[lindex],value)


IInteger lindex :左辺値(出力先)となる要素番号。
IFloat value :入力値。

先頭へ


MathProcessor::PushAbs

public void PushAbs( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Abs())
[概念]   target[lindex]=abs(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushFloor

public void PushFloor( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Floor())
[概念]   target[lindex]=floor(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushCeil

public void PushCeil( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Ceil())
[概念]   target[lindex]=ceil(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushRound

public void PushRound( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].Round())
[概念]   target[lindex]=round(target[value_index])


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :入力値となる要素番号。

先頭へ


MathProcessor::PushFloorM

public void PushFloorM( IInteger lindex, IInteger value_index, IInteger unit_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_i().FloorM(target[unit_index]))
[概念]   target[lindex]=floor(target[value_index].trunc()/target[unit_index].trunc())*target[unit_index].trunc()


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_index :揃える単位となる要素番号。

先頭へ


MathProcessor::PushFloorMF

public void PushFloorMF( IInteger lindex, IInteger value_index, IInteger unit_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_f().FloorM(target[unit_index]))
[概念]   target[lindex]=floor(target[value_index]/target[unit_index])*target[unit_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_index :揃える単位となる要素番号。

先頭へ


MathProcessor::PushFloorMC

public void PushFloorMC( IInteger lindex, IInteger value_index, IInteger unit_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_i().FloorM(unit_value))
[概念]   target[lindex]=floor(target[value_index].trunc()/unit_value)*unit_value


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_value :揃える単位。

先頭へ


MathProcessor::PushFloorMFC

public void PushFloorMFC( IInteger lindex, IInteger value_index, IFloat unit_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_f().FloorM(unit_value))
[概念]   target[lindex]=floor(target[value_index]/unit_value)*unit_value


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IFloat unit_value :揃える単位。

先頭へ


MathProcessor::PushCeilM

public void PushCeilM( IInteger lindex, IInteger value_index, IInteger unit_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_i().CeilM(target[unit_index]))
[概念]   target[lindex]=ceil(target[value_index].trunc()/target[unit_index].trunc())*target[unit_index].trunc()


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_index :揃える単位となる要素番号。

先頭へ


MathProcessor::PushCeilMF

public void PushCeilMF( IInteger lindex, IInteger value_index, IInteger unit_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_f().CeilM(target[unit_index]))
[概念]   target[lindex]=ceil(target[value_index]/target[unit_index])*target[unit_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_index :揃える単位となる要素番号。

先頭へ


MathProcessor::PushCeilMC

public void PushCeilMC( IInteger lindex, IInteger value_index, IInteger unit_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_i().CeilM(unit_value))
[概念]   target[lindex]=ceil(target[value_index].trunc()/unit_value)*unit_value


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_value :揃える単位。

先頭へ


MathProcessor::PushCeilMFC

public void PushCeilMFC( IInteger lindex, IInteger value_index, IFloat unit_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_f().CeilM(unit_value))
[概念]   target[lindex]=ceil(target[value_index]/unit_value)*unit_value


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IFloat unit_value :揃える単位。

先頭へ


MathProcessor::PushRoundM

public void PushRoundM( IInteger lindex, IInteger value_index, IInteger unit_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_i().RoundM(target[unit_index]))
[概念]   target[lindex]=round(target[value_index].trunc()/target[unit_index].trunc())*target[unit_index].trunc()


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_index :揃える単位となる要素番号。

先頭へ


MathProcessor::PushRoundMF

public void PushRoundMF( IInteger lindex, IInteger value_index, IInteger unit_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_f().RoundM(target[unit_index]))
[概念]   target[lindex]=round(target[value_index]/target[unit_index])*target[unit_index]


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_index :揃える単位となる要素番号。

先頭へ


MathProcessor::PushRoundMC

public void PushRoundMC( IInteger lindex, IInteger value_index, IInteger unit_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_i().RoundM(unit_value))
[概念]   target[lindex]=round(target[value_index].trunc()/unit_value)*unit_value


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IInteger unit_value :揃える単位。

先頭へ


MathProcessor::PushRoundMFC

public void PushRoundMFC( IInteger lindex, IInteger value_index, IFloat unit_value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[value_index].to_f().RoundM(unit_value))
[概念]   target[lindex]=round(target[value_index]/unit_value)*unit_value


IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :元値となる要素番号。
IFloat unit_value :揃える単位。

先頭へ


MathProcessor::PushRandom

public void PushRandom( IInteger lindex, IInteger max_index)

   target[lindex] に0以上 target[max_index] の絶対値未満の整数乱数を生成します。
   target[max_index] が負値である場合、生成される値も負値になります。
   この生成は整数のみを生成し、上限値は出力に含みません。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger max_index :上限値となる要素番号。

先頭へ


MathProcessor::PushRandomC

public void PushRandomC( IInteger lindex, IInteger max)

   target[lindex] に0以上 max の絶対値未満の整数乱数を生成します。
   max が負値である場合、生成される値も負値になります。
   この生成は整数のみを生成し、上限値は出力に含みません。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger max :上限値。

先頭へ


MathProcessor::PushRandomF

public void PushRandomF( IInteger lindex, IInteger max_index)

   target[lindex] に0以上 target[max_index] の絶対値未満の小数乱数を生成します。
   target[max_index] が負値である場合、生成される値も負値になります。
   この生成は小数を生成し、上限値は出力に含みません。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger max_index :上限値となる要素番号。

先頭へ


MathProcessor::PushRandomFC

public void PushRandomFC( IInteger lindex, IFloat max)

   target[lindex] に0以上 max の絶対値未満の小数乱数を生成します。
   max が負値である場合、生成される値も負値になります。
   この生成は小数を生成し、上限値は出力に含みません。

IInteger lindex :左辺値(出力先)となる要素番号。
IFloat max :上限値。

先頭へ


MathProcessor::PushOr

public void PushOr( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]|target[value_index])
[概念]   target[lindex]=(target[lindex] bitor target[value_index])


   この処理は整数化してから行われます。
   小数値の端数は失われます。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushOrC

public void PushOrC( IInteger lindex, IInteger value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]|value)
[概念]   target[lindex]=(target[lindex] bitor value)


   この処理は整数化してから行われます。
   小数値の端数は失われます。
   
IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value :右辺値。

先頭へ


MathProcessor::PushAnd

public void PushAnd( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]&target[value_index])
[概念]   target[lindex]=(target[lindex] bitand target[value_index])


   この処理は整数化してから行われます。
   小数値の端数は失われます。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushAndC

public void PushAndC( IInteger lindex, IInteger value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]&value)
[概念]   target[lindex]=(target[lindex] bitand value)


   この処理は整数化してから行われます。
   小数値の端数は失われます。
   
IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value :右辺値。

先頭へ


MathProcessor::PushXor

public void PushXor( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]^target[value_index])
[概念]   target[lindex]=(target[lindex] bitxor target[value_index])


   この処理は整数化してから行われます。
   小数値の端数は失われます。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushXorC

public void PushXorC( IInteger lindex, IInteger value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]^value)
[概念]   target[lindex]=(target[lindex] bitxor value)


   この処理は整数化してから行われます。
   小数値の端数は失われます。
   
IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value :右辺値。

先頭へ


MathProcessor::PushLShift

public void PushLShift( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]<<target[value_index])
[概念]   target[lindex]=(target[lindex]<<target[value_index])


   この処理は整数化してから行われます。
   小数値の端数は失われます。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushLShiftC

public void PushLShiftC( IInteger lindex, IInteger value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]<<value)
[概念]   target[lindex]=(target[lindex]<<value)


   この処理は整数化してから行われます。
   小数値の端数は失われます。
   
IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value :右辺値。

先頭へ


MathProcessor::PushRShift

public void PushRShift( IInteger lindex, IInteger value_index)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]>>target[value_index])
[概念]   target[lindex]=(target[lindex]>>target[value_index])


   この処理は整数化してから行われます。
   小数値の端数は失われます。
   この処理は算術シフトです。

IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value_index :右辺値となる要素番号。

先頭へ


MathProcessor::PushRShiftC

public void PushRShiftC( IInteger lindex, IInteger value)

   以下の処理を追加します。( target は処理対象の配列)
[FGES]   target.Set(lindex,target[lindex]>>value)
[概念]   target[lindex]=(target[lindex]>>value)


   この処理は整数化してから行われます。
   小数値の端数は失われます。
   この処理は算術シフトです。
   
IInteger lindex :左辺値(出力先)となる要素番号。
IInteger value :右辺値。

先頭へ


[前へ] [目次へ] [次へ]

最終更新 2023/02/03