:orphan: ================================================== モデル1 ================================================== | 基数を作成するだけのシンプルなモデルです。 | :doc:`1100_tutorial` で説明しています。 .. raw:: html .. raw:: html
    // ベース計算クラス
    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) }

    }

    }