インプットを読み込む関数

インフォース・アサンプション・ファクターの読み込みには、以下のユーティリティ関数を使うことができます。

インフォース

インフォース読込用関数
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)