==================================================================== インプットを読み込む関数 ==================================================================== インフォース・アサンプション・ファクターの読み込みには、以下のユーティリティ関数を使うことができます。 インフォース ------------------------ | **インフォース読込用関数** | ``Inf.get_int`` , ``Inf.get_double`` , ``Inf.get_string``, ``Inf.get_bool`` * 引数は ``(string key)`` * キー(key)を元にint/double/string/bool型でインフォースから値を取得します - キーが無い場合、取得した値が型に変換できない場合はエラーとなります * 使用例は以下のとおりです。 :: int x = Inf.get_int("x") アサンプション ------------------------ | **アサンプション読込用関数(スカラー値・1次元配列)** | ``Asm.get_int`` , ``Asm.get_double`` , ``Asm.get_string`` , ``Asm.get_bool`` * 引数は ``(string key)`` もしくは ``(string key, int index)`` * キー(key)を元にint/double/string/bool型でアサンプションからインデックス(index)番目の値を取得します(indexは0から始まる) - **インデックスを指定していない場合は最初の値を取得します** - **インデックスが配列の長さ以上の場合は最後の値を取得します** - キーが無い場合、インデックスが不適切な場合、取得した値が型に変換できない場合はエラーとなります - アサンプションがスカラー値(値が1つのみセットされている場合)はインデックスに関係なくその値を取得します(内部的には値が1つの配列と同じ扱いとしています) * 使用例は以下のとおりです。(タイムステップをxとし、アサンプションのx番目の値を配列型の変数にセット) :: double[] qx = if (sex == "M"){ Asm.get_double("qx_m_SLT1996", x) } else { Asm.get_double("qx_f_SLT1996", x) } | **アサンプション読込用関数(スカラー値・2次元配列)** | ``Asm2d.get_int`` , ``Asm2d.get_double`` , ``Asm2d.get_string`` , ``Asm2d.get_bool`` * 引数は ``(string key, int index_row, int index_col)`` * キー(key)を元にint/double/string/bool型でアサンプション(2次元配列)からindex_row行目、index_col列目の値を取得します - **index_colが列の大きさ以上の場合は最後の値を取得します** - キーが無い場合、インデックスが不適切な場合、取得した値が型に変換できない場合はエラーとなります * 使用例は以下のとおりです。(タイムステップをtとし、アサンプションのシナリオ番目の行、x番目の列の値を配列型の変数にセット) :: double[] investment_yield = Asm2d.get_double("int_rate", $scenario, t) ファクター ------------------------ | **ファクター読込用関数** | ``Fac.get_int`` , ``Fac.get_double`` , ``Fac.get_string`` , ``Fac.get_bool`` * 引数は、以下のいずれかです * ``(string outputName, string moduleName, string variableName, int scenarioID, int shockID)`` * ``(string outputName, string moduleName, string variableName, int scenarioID, int shockID, int index)`` * ファクター(1回目の計算結果)からint/double/string/bool型で値を取得します * キーとして、1回目の計算での出力定義(outputName)・モジュール名(outputName)・変数名(variableName)・シナリオ番号(scenarioID)・ショック番号(shockID)・インデックス(index)を指定します - **インデックスを指定していない場合は最初の値を取得します** - **インデックスが配列の長さ以上の場合は最後の値を取得します** - シナリオ平均の場合、シナリオ番号に-1をセットする必要があります - 1回目のランのためファクターが無い場合、キーが無い場合、インデックスが不適切な場合、取得した値が型に変換できない場合はエラーとなります * 使用例は以下のとおりです。(出力定義ev_deter, モジュール名OutputEV, 変数名PVFP, シナリオ0番目, ショック0番目) :: double PVFP = Fac.get_double("ev_deter", "OutputEV", "PVFP", 0, 0)