モデル1

基数を作成するだけのシンプルなモデルです。
チュートリアル1 で説明しています。
// ベース計算クラス
calculation Base {

// 基数モジュール
module CT{

    // このモジュールでのタイムステップを定める
    @range = x
    @range_last = 130

    // 算式の定義
    int max_x = 130
    string sex = Inf.get_string("sex")

    double CIR = Asm.get_double("CIR")
    double[] qx =  if (sex == "M"){ Asm.get_double("qx_m_SLT1996", x) }
                   else           { Asm.get_double("qx_f_SLT1996", x) }

    double[] lx = if (x == 0) { 1.0 }
                  else        { Utl.max(lx(x-1) - d_x(x-1), 0.0) }
    double[] d_x = lx(x) * qx(x)

    double v = 1.0 / (1.0 + CIR)
    double[] vx = if(x == 0) { 1.0 }
                  else       { vx(x-1) * v }

    double[] Dx = lx(x) * vx(x)
    double[] Cx = d_x(x) * vx(x) * v ^ 0.5
    double[] Nx =
        if (x >= max_x) { Dx(x) }
        else            { Dx(x) + Nx(x+1) }
    double[] Mx =
        if (x >= max_x) { Cx(x) }
        else            { Cx(x) + Mx(x+1) }

}

}