/*
 * This code is generated by BioUML FrameWork 
 * for BIOMD0000000056.xml diagram  at 2008.03.20 15:04:41
 */
import biouml.plugins.simulation.ae.NewtonSolver;
import biouml.plugins.simulation.java.JavaBaseModel;
import ru.biosoft.math.MathRoutines;

public class BIOMD0000000056 extends JavaBaseModel
{

/*
 * Write rules to calculate equation parameters
 */
    private void __internalVarInitFunc_0(double time, double[] x)
    {
        _cell_0_BCK2_1_ = b0_75*_cell_0_MASS_37_;
        Vaiep_59 = kaiep_128*x[14];
        Vacdh_58 = kacdh_126 + kacdh_127*x[5];
        Vicdh_67 = kicdh_174 + kicdh_175*(eicdhn3_97*_cell_0_CLN3_25_ + eicdhn2_96*x[16] + eicdhb5_95*x[15] + eicdhb2_94*x[14]);
        Vkpnet_71 = (kkpnet_181 + kkpnet_182*x[6])*_cell_0_MASS_37_;
        Vppnet_74 = kppnet_185 + kppnet_186*x[29];
        Vasbf_60 = kasbf_132*(esbfn2_101*x[16] + esbfn3_102*(_cell_0_CLN3_25_ + _cell_0_BCK2_1_) + esbfb5_100*x[15]);
        _cell_0_SBF_49_ = GK_219(Vasbf_60, Visbf_68, Jasbf_109, Jisbf_116);
        _cell_0_MCM1_38_ = GK_219(kamcm_129*x[14], kimcm_177, Jamcm_108, Jimcm_115);
        mu_39 = 0.6931471805599453/mdt_216;
        D_26 = 1.026/mu_39 - 32.0;
        Visbf_68 = kisbf_178 + kisbf_179*x[14];
        F_28 = Math.exp(-mu_39*D_26);
        Vd2c1_61 = kd2c1_144*(ec1n3_88*_cell_0_CLN3_25_ + ec1k2_86*_cell_0_BCK2_1_ + ec1n2_87*x[16] + ec1b5_85*x[15] + ec1b2_84*x[14]);
        Vd2f6_62 = kd2f6_145*(ef6n3_93*_cell_0_CLN3_25_ + ef6k2_91*_cell_0_BCK2_1_ + ef6n2_92*x[16] + ef6b5_90*x[15] + ef6b2_89*x[14]);
        Vkpc1_69 = kd1c1_140 + Vd2c1_61/(Jd2c1_111 + x[33] + x[2] + x[4] + x[32] + x[1] + x[3]);
        Vkpf6_70 = kd1f6_141 + Vd2f6_62/(Jd2f6_112 + x[11] + x[19] + x[21] + x[10] + x[18] + x[20]);
        Vdb2_63 = kdb_150 + kdb_151*x[12] + kdb2p_152*x[8];
        Vdb5_64 = kdb_153 + kdb_154*x[8];
        Vdpds_65 = kdpds_142 + kdpds_146*x[8] + kdpds_149*x[12];
        Vdppx_66 = kdppx_167 + kdppx_168*(J20ppx_105 + x[8])*Jpds_119/(Jpds_119 + x[27]);
        _cell_0_CLB2T_21_ = x[14] + x[2] + x[1] + x[19] + x[18];
        _cell_0_CLN3_25_ = C0_78*Dn3_80*_cell_0_MASS_37_/(Jn3_118 + Dn3_80*_cell_0_MASS_37_);
        _cell_0_CLB5T_23_ = x[15] + x[4] + x[3] + x[21] + x[20];
        _cell_0_CDC14T_9_ = x[5] + x[31] + x[30];
        _cell_0_NET1T_42_ = x[25] + x[24] + x[31] + x[30];
        _cell_0_SIC1T_52_ = x[33] + x[2] + x[4] + x[32] + x[1] + x[3];
        _cell_0_CDC6T_16_ = x[11] + x[19] + x[21] + x[10] + x[18] + x[20];
        _cell_0_CKIT_19_ = _cell_0_SIC1T_52_ + _cell_0_CDC6T_16_;
        Vppc1_72 = kppc1_183*x[5];
        Vppf6_73 = kppf6_184*x[5];
    }


/*
 * Write rules to calculate equation parameters excluding internal variables.
 */
    public void __internalRateVarInitFunc_0(double time, double[] x)
    {
        rate_Activation_282 = MichaelisMenten_220(Vacdh_58, Jacdh_106, 1.0, x[13]);
        rate_ActivationofCDC_278 = Mass_Action_1_222(ka_124 + ka_125*x[22], x[9]);
        rate_ActivationofIEP_273 = MichaelisMenten_220(Vaiep_59, Jaiep_107, 1.0, x[23]);
        rate_ActivationofSWI_271 = Mass_Action_1_222(kaswi_138*x[5], x[35]);
        rate_AssocofCLBandSIC_236 = Mass_Action_2_221(kasb2_130, x[14], x[33]);
        rate_AssocofCLBandSIC_238 = Mass_Action_2_221(kasb5_131, x[15], x[33]);
        rate_AssocwithESPtoformPE_306 = Mass_Action_2_221(kasesp_133, x[27], x[17]);
        rate_AssocwithNETPtoformRENTP_287 = Mass_Action_2_221(kasrentp_137, x[5], x[24]);
        rate_AssocwithNETtoformRENT_285 = Mass_Action_2_221(kasrent_136, x[5], x[25]);
        rate_CDCactivation_301 = Mass_Action_1_222(ka_121*x[37] + ka_122*x[38] + ka15p_123*x[5], x[7]);
        rate_DegradationofCDCinRENTP_298 = Mass_Action_1_222(kd14_139, x[30]);
        rate_DegradationofCDCinRENT_297 = Mass_Action_1_222(kd14_139, x[31]);
        rate_DegradationofCLB_229 = Mass_Action_1_222(Vdb2_63, x[14]);
        rate_DegradationofCLB_231 = Mass_Action_1_222(Vdb5_64, x[15]);
        rate_DegradationofCLBinCP_248 = Mass_Action_1_222(Vdb2_63, x[1]);
        rate_DegradationofCLBinC_244 = Mass_Action_1_222(Vdb2_63, x[2]);
        rate_DegradationofCLN_227 = Mass_Action_1_222(kdn2_164, x[16]);
        rate_DegradationofNETPinRENTP_296 = Mass_Action_1_222(kdnet_165, x[30]);
        rate_DegradationofNETinRENT_295 = Mass_Action_1_222(kdnet_165, x[31]);
        rate_DegradationofPDSinPE_305 = Mass_Action_1_222(Vdpds_65, x[28]);
        rate_DegradationofSICinCP_246 = Mass_Action_1_222(kd3c1_147, x[1]);
        rate_DegradationofSWIP_270 = Mass_Action_1_222(kdswi_170, x[35]);
        rate_DegradationofSWI_269 = Mass_Action_1_222(kdswi_170, x[36]);
        rate_DegradationofactiveCDC_277 = Mass_Action_1_222(kd20_143, x[8]);
        rate_DegradationofinactiveCDC_276 = Mass_Action_1_222(kd20_143, x[9]);
        rate_DephosphorylationofCP_241 = Mass_Action_1_222(Vppc1_72, x[1]);
        rate_DephosphorylationofSIC_234 = Mass_Action_1_222(Vppc1_72, x[32]);
        rate_DissocfromRENP_288 = Mass_Action_1_222(kdirentp_163, x[30]);
        rate_DissocfromRENT_286 = Mass_Action_1_222(kdirent_162, x[31]);
        rate_DissocofCLBSIC_239 = Mass_Action_1_222(kdib5_158, x[4]);
        rate_DissocofCLBSICcomplex_237 = Mass_Action_1_222(kdib2_157, x[2]);
        rate_DissofromPE_307 = Mass_Action_1_222(kdiesp_159, x[28]);
        rate_FastDegradationofSICP_235 = Mass_Action_1_222(kd3c1_147, x[32]);
        rate_Inactivation_274_CDC20 = Mass_Action_1_222(_cell_0_MAD2_36_, x[8]);
        rate_Inactivation_274_CDH1 = MichaelisMenten_220(Vicdh_67, Jicdh_113, 1.0, x[12]);
        rate_Inactivation_274_IEP = MichaelisMenten_220(1.0, Jiiep_114, kiiep_176, x[22]);
        rate_InactivationofSWI_272 = Mass_Action_1_222(kiswi_180*x[14], x[36]);
        rate_NETphosphorylation_292 = Mass_Action_1_222(Vkpnet_71, x[25]);
        rate_PhosphorylationofC_240 = Mass_Action_1_222(Vkpc1_69, x[2]);
        rate_PhosphorylationofSIC_233 = Mass_Action_1_222(Vkpc1_69, x[33]);
    }
    public void __internalRateVarInitFunc_1(double time, double[] x)
    {
        rate_RENTphosphorylation_294 = Mass_Action_1_222(Vkpnet_71, x[31]);
        rate_TEMactivation_299 = MichaelisMenten_220(_cell_0_LTE1_35_, Jatem_110, 1.0, x[37]);
        rate__242 = Mass_Action_1_222(Vkpc1_69, x[4]);
        rate__243 = Mass_Action_1_222(Vppc1_72, x[3]);
        rate__245 = Mass_Action_1_222(Vdb5_64, x[4]);
        rate__247 = Mass_Action_1_222(kd3c1_147, x[3]);
        rate__249 = Mass_Action_1_222(Vdb5_64, x[3]);
        rate__251 = Mass_Action_1_222(Vkpf6_70, x[11]);
        rate__252 = Mass_Action_1_222(Vppf6_73, x[10]);
        rate__253 = Mass_Action_1_222(kd3f6_148, x[10]);
        rate__254 = Mass_Action_2_221(kasf2_134, x[14], x[11]);
        rate__255 = Mass_Action_1_222(kdif2_160, x[19]);
        rate__256 = Mass_Action_2_221(kasf5_135, x[15], x[11]);
        rate__257 = Mass_Action_1_222(kdif5_161, x[21]);
        rate__258 = Mass_Action_1_222(Vkpf6_70, x[19]);
        rate__259 = Mass_Action_1_222(Vppf6_73, x[18]);
        rate__260 = Mass_Action_1_222(Vkpf6_70, x[21]);
        rate__261 = Mass_Action_1_222(Vppf6_73, x[20]);
        rate__262 = Mass_Action_1_222(Vdb2_63, x[19]);
        rate__263 = Mass_Action_1_222(Vdb5_64, x[21]);
        rate__264 = Mass_Action_1_222(kd3f6_148, x[18]);
        rate__265 = Mass_Action_1_222(kd3f6_148, x[20]);
        rate__266 = Mass_Action_1_222(Vdb2_63, x[18]);
        rate__267 = Mass_Action_1_222(Vdb5_64, x[20]);
        rate__280 = Mass_Action_1_222(kdcdh_156, x[12]);
        rate__281 = Mass_Action_1_222(kdcdh_156, x[13]);
        rate__284 = Mass_Action_1_222(kd14_139, x[5]);
        rate__290 = Mass_Action_1_222(kdnet_165, x[25]);
        rate__291 = Mass_Action_1_222(kdnet_165, x[24]);
        rate__309 = Mass_Action_1_222(kdori_166, x[26]);
        rate__311 = Mass_Action_1_222(kdbud_155, x[0]);
        rate__313 = Mass_Action_1_222(kdspn_169, x[34]);
        rate_degradation_303_PDS1 = Mass_Action_1_222(Vdpds_65, x[27]);
        rate_degradation_303_PPX = Mass_Action_1_222(Vdppx_66, x[29]);
        rate_dephosphorylation_293_NET1P = Mass_Action_1_222(Vppnet_74, x[24]);
        rate_dephosphorylation_293_RENTP = Mass_Action_1_222(Vppnet_74, x[30]);
        rate_inactivation_300_CDC15 = Mass_Action_1_222(ki15_173, x[6]);
        rate_inactivation_300_TEM1GTP = MichaelisMenten_220(_cell_0_BUB2_2_, Jitem_117, 1.0, x[38]);
    }

    public void Init()
    {
        initialValues = getInitialValues();
/*
 * Initialize variables
 */
        _cell_0_BUB2_2_ = 0.2; // initial value of $"cell_0.BUB2_2"
        _cell_0_CDC14T_9_ = 2.0; // initial value of $"cell_0.CDC14T_9"
        _cell_0_CLB2T_21_ = 0.17; // initial value of $"cell_0.CLB2T_21"
        _cell_0_CLB5T_23_ = 0.12; // initial value of $"cell_0.CLB5T_23"
        _cell_0_LTE1_35_ = 0.1; // initial value of $"cell_0.LTE1_35"
        _cell_0_MAD2_36_ = 0.01; // initial value of $"cell_0.MAD2_36"
        _cell_0_MASS_37_ = 1.206019; // initial value of $"cell_0.MASS_37"
        _cell_0_NET1T_42_ = 2.8; // initial value of $"cell_0.NET1T_42"
        C0_78 = 0.4; // initial value of C0_78
        CDC15T_79 = 1.0; // initial value of CDC15T_79
        Dn3_80 = 1.0; // initial value of Dn3_80
        ESP1T_103 = 1.0; // initial value of ESP1T_103
        IET_104 = 1.0; // initial value of IET_104
        J20ppx_105 = 0.15; // initial value of J20ppx_105
        Jacdh_106 = 0.03; // initial value of Jacdh_106
        Jaiep_107 = 0.1; // initial value of Jaiep_107
        Jamcm_108 = 0.1; // initial value of Jamcm_108
        Jasbf_109 = 0.01; // initial value of Jasbf_109
        Jatem_110 = 0.1; // initial value of Jatem_110
        Jd2c1_111 = 0.05; // initial value of Jd2c1_111
        Jd2f6_112 = 0.05; // initial value of Jd2f6_112
        Jicdh_113 = 0.03; // initial value of Jicdh_113
        Jiiep_114 = 0.1; // initial value of Jiiep_114
        Jimcm_115 = 0.1; // initial value of Jimcm_115
        Jisbf_116 = 0.01; // initial value of Jisbf_116
        Jitem_117 = 0.1; // initial value of Jitem_117
        Jn3_118 = 6.0; // initial value of Jn3_118
        Jpds_119 = 0.04; // initial value of Jpds_119
        KEZ2_172 = 0.2; // initial value of KEZ2_172
        KEZ_171 = 0.3; // initial value of KEZ_171
        TEM1T_217 = 1.0; // initial value of TEM1T_217
        b0_75 = 0.054; // initial value of b0_75
        bub2h_76 = 1.0; // initial value of bub2h_76
        bub2l_77 = 0.2; // initial value of bub2l_77
        ec1b2_84 = 0.45; // initial value of ec1b2_84
        ec1b5_85 = 0.1; // initial value of ec1b5_85
        ec1k2_86 = 0.03; // initial value of ec1k2_86
        ec1n2_87 = 0.06; // initial value of ec1n2_87
        ec1n3_88 = 0.3; // initial value of ec1n3_88
        ef6b2_89 = 0.55; // initial value of ef6b2_89
        ef6b5_90 = 0.1; // initial value of ef6b5_90
        ef6k2_91 = 0.03; // initial value of ef6k2_91
        ef6n2_92 = 0.06; // initial value of ef6n2_92
        ef6n3_93 = 0.3; // initial value of ef6n3_93
        eicdhb2_94 = 1.2; // initial value of eicdhb2_94
        eicdhb5_95 = 8.0; // initial value of eicdhb5_95
        eicdhn2_96 = 0.4; // initial value of eicdhn2_96
        eicdhn3_97 = 0.25; // initial value of eicdhn3_97
        esbfb5_100 = 2.0; // initial value of esbfb5_100
        esbfn2_101 = 2.0; // initial value of esbfn2_101
        esbfn3_102 = 10.0; // initial value of esbfn3_102
        ka15p_123 = 0.0010; // initial value of ka15p_123
        ka_121 = 0.0020; // initial value of ka_121
        ka_122 = 1.0; // initial value of ka_122
        ka_124 = 0.05; // initial value of ka_124
        ka_125 = 0.2; // initial value of ka_125
        kacdh_126 = 0.01; // initial value of kacdh_126
        kacdh_127 = 0.8; // initial value of kacdh_127
        kaiep_128 = 0.1; // initial value of kaiep_128
        kamcm_129 = 1.0; // initial value of kamcm_129
        kasb2_130 = 50.0; // initial value of kasb2_130
        kasb5_131 = 50.0; // initial value of kasb5_131
        kasbf_132 = 0.38; // initial value of kasbf_132
        kasesp_133 = 50.0; // initial value of kasesp_133
        kasf2_134 = 15.0; // initial value of kasf2_134
        kasf5_135 = 0.01; // initial value of kasf5_135
        kasrent_136 = 200.0; // initial value of kasrent_136
        kasrentp_137 = 1.0; // initial value of kasrentp_137
        kaswi_138 = 2.0; // initial value of kaswi_138
        kd14_139 = 0.1; // initial value of kd14_139
        kd1c1_140 = 0.01; // initial value of kd1c1_140
        kd1f6_141 = 0.01; // initial value of kd1f6_141
        kd20_143 = 0.3; // initial value of kd20_143
        kd2c1_144 = 1.0; // initial value of kd2c1_144
        kd2f6_145 = 1.0; // initial value of kd2f6_145
        kd3c1_147 = 1.0; // initial value of kd3c1_147
        kd3f6_148 = 1.0; // initial value of kd3f6_148
        kdb2p_152 = 0.15; // initial value of kdb2p_152
        kdb_150 = 0.0030; // initial value of kdb_150
        kdb_151 = 0.4; // initial value of kdb_151
        kdb_153 = 0.01; // initial value of kdb_153
        kdb_154 = 0.16; // initial value of kdb_154
        kdbud_155 = 0.06; // initial value of kdbud_155
        kdcdh_156 = 0.01; // initial value of kdcdh_156
        kdib2_157 = 0.05; // initial value of kdib2_157
        kdib5_158 = 0.06; // initial value of kdib5_158
        kdiesp_159 = 0.5; // initial value of kdiesp_159
        kdif2_160 = 0.5; // initial value of kdif2_160
        kdif5_161 = 0.01; // initial value of kdif5_161
        kdirent_162 = 1.0; // initial value of kdirent_162
        kdirentp_163 = 2.0; // initial value of kdirentp_163
        kdn2_164 = 0.12; // initial value of kdn2_164
        kdnet_165 = 0.03; // initial value of kdnet_165
        kdori_166 = 0.06; // initial value of kdori_166
        kdpds_142 = 0.01; // initial value of kdpds_142
        kdpds_146 = 0.2; // initial value of kdpds_146
        kdpds_149 = 0.04; // initial value of kdpds_149
        kdppx_167 = 0.17; // initial value of kdppx_167
        kdppx_168 = 2.0; // initial value of kdppx_168
        kdspn_169 = 0.06; // initial value of kdspn_169
        kdswi_170 = 0.08; // initial value of kdswi_170
        ki15_173 = 0.5; // initial value of ki15_173
        kicdh_174 = 0.0010; // initial value of kicdh_174
        kicdh_175 = 0.08; // initial value of kicdh_175
        kiiep_176 = 0.15; // initial value of kiiep_176
        kimcm_177 = 0.15; // initial value of kimcm_177
        kisbf_178 = 0.6; // initial value of kisbf_178
        kisbf_179 = 8.0; // initial value of kisbf_179
        kiswi_180 = 0.05; // initial value of kiswi_180
        kkpnet_181 = 0.01; // initial value of kkpnet_181
        kkpnet_182 = 0.6; // initial value of kkpnet_182
        kppc1_183 = 4.0; // initial value of kppc1_183
        kppf6_184 = 4.0; // initial value of kppf6_184
        kppnet_185 = 0.05; // initial value of kppnet_185
        kppnet_186 = 3.0; // initial value of kppnet_186
        lte1h_212 = 1.0; // initial value of lte1h_212
        lte1l_213 = 0.1; // initial value of lte1l_213
        mad2h_214 = 8.0; // initial value of mad2h_214
        mad2l_215 = 0.01; // initial value of mad2l_215
        mdt_216 = 90.0; // initial value of mdt_216
    }

    /*
     * Model variables initial values
     */
    protected double _cell_0_BCK2_1_;
    protected double _cell_0_BUB2_2_;
    protected double _cell_0_CDC14T_9_;
    protected double _cell_0_CDC6T_16_;
    protected double _cell_0_CKIT_19_;
    protected double _cell_0_CLB2T_21_;
    protected double _cell_0_CLB5T_23_;
    protected double _cell_0_CLN3_25_;
    protected double _cell_0_LTE1_35_;
    protected double _cell_0_MAD2_36_;
    protected double _cell_0_MASS_37_;
    protected double _cell_0_MCM1_38_;
    protected double _cell_0_NET1T_42_;
    protected double _cell_0_SBF_49_;
    protected double _cell_0_SIC1T_52_;
    protected double rate_Activation_282;
    protected double rate_ActivationofCDC_278;
    protected double rate_ActivationofIEP_273;
    protected double rate_ActivationofSWI_271;
    protected double rate_AssocofCLBandSIC_236;
    protected double rate_AssocofCLBandSIC_238;
    protected double rate_AssocwithESPtoformPE_306;
    protected double rate_AssocwithNETPtoformRENTP_287;
    protected double rate_AssocwithNETtoformRENT_285;
    protected double rate_CDCactivation_301;
    protected double rate_CDCanotherCKIlikeSIC_250;
    protected double rate_DegradationofCDCinRENTP_298;
    protected double rate_DegradationofCDCinRENT_297;
    protected double rate_DegradationofCLB_229;
    protected double rate_DegradationofCLB_231;
    protected double rate_DegradationofCLBinCP_248;
    protected double rate_DegradationofCLBinC_244;
    protected double rate_DegradationofCLN_227;
    protected double rate_DegradationofNETPinRENTP_296;
    protected double rate_DegradationofNETinRENT_295;
    protected double rate_DegradationofPDSinPE_305;
    protected double rate_DegradationofSICinCP_246;
    protected double rate_DegradationofSWIP_270;
    protected double rate_DegradationofSWI_269;
    protected double rate_DegradationofactiveCDC_277;
    protected double rate_DegradationofinactiveCDC_276;
    protected double rate_DephosphorylationofCP_241;
    protected double rate_DephosphorylationofSIC_234;
    protected double rate_DissocfromRENP_288;
    protected double rate_DissocfromRENT_286;
    protected double rate_DissocofCLBSIC_239;
    protected double rate_DissocofCLBSICcomplex_237;
    protected double rate_DissofromPE_307;
    protected double rate_FastDegradationofSICP_235;
    protected double rate_Growth_225;
    protected double rate_Inactivation_274_CDC20;
    protected double rate_Inactivation_274_CDH1;
    protected double rate_Inactivation_274_IEP;
    protected double rate_InactivationofSWI_272;
    protected double rate_NETphosphorylation_292;
    protected double rate_PDSsynthesis_304;
    protected double rate_PPXsynthesis_302;
    protected double rate_PhosphorylationofC_240;
    protected double rate_PhosphorylationofSIC_233;
    protected double rate_RENTphosphorylation_294;
    protected double rate_SynthesisofCLB_228;
    protected double rate_SynthesisofCLB_230;
    protected double rate_SynthesisofCLN_226;
    protected double rate_SynthesisofSIC_232;
    protected double rate_SynthesisofSWI_268;
    protected double rate_SynthesisofinactiveCDC_275;
    protected double rate_TEMactivation_299;
    protected double rate__242;
    protected double rate__243;
    protected double rate__245;
    protected double rate__247;
    protected double rate__249;
    protected double rate__251;
    protected double rate__252;
    protected double rate__253;
    protected double rate__254;
    protected double rate__255;
    protected double rate__256;
    protected double rate__257;
    protected double rate__258;
    protected double rate__259;
    protected double rate__260;
    protected double rate__261;
    protected double rate__262;
    protected double rate__263;
    protected double rate__264;
    protected double rate__265;
    protected double rate__266;
    protected double rate__267;
    protected double rate__279;
    protected double rate__280;
    protected double rate__281;
    protected double rate__283;
    protected double rate__284;
    protected double rate__289;
    protected double rate__290;
    protected double rate__291;
    protected double rate__308;
    protected double rate__309;
    protected double rate__310;
    protected double rate__311;
    protected double rate__312;
    protected double rate__313;
    protected double rate_degradation_303_PDS1;
    protected double rate_degradation_303_PPX;
    protected double rate_dephosphorylation_293_NET1P;
    protected double rate_dephosphorylation_293_RENTP;
    protected double rate_inactivation_300_CDC15;
    protected double rate_inactivation_300_TEM1GTP;
    protected double C0_78;
    protected double CDC15T_79;
    protected double D_26;
    protected double Dn3_80;
    protected double ESP1T_103;
    protected double F_28;
    protected double IET_104;
    protected double J20ppx_105;
    protected double Jacdh_106;
    protected double Jaiep_107;
    protected double Jamcm_108;
    protected double Jasbf_109;
    protected double Jatem_110;
    protected double Jd2c1_111;
    protected double Jd2f6_112;
    protected double Jicdh_113;
    protected double Jiiep_114;
    protected double Jimcm_115;
    protected double Jisbf_116;
    protected double Jitem_117;
    protected double Jn3_118;
    protected double Jpds_119;
    protected double KEZ2_172;
    protected double KEZ_171;
    protected double TEM1T_217;
    protected double Vacdh_58;
    protected double Vaiep_59;
    protected double Vasbf_60;
    protected double Vd2c1_61;
    protected double Vd2f6_62;
    protected double Vdb2_63;
    protected double Vdb5_64;
    protected double Vdpds_65;
    protected double Vdppx_66;
    protected double Vicdh_67;
    protected double Visbf_68;
    protected double Vkpc1_69;
    protected double Vkpf6_70;
    protected double Vkpnet_71;
    protected double Vppc1_72;
    protected double Vppf6_73;
    protected double Vppnet_74;
    protected double b0_75;
    protected double bub2h_76;
    protected double bub2l_77;
    protected double ec1b2_84;
    protected double ec1b5_85;
    protected double ec1k2_86;
    protected double ec1n2_87;
    protected double ec1n3_88;
    protected double ef6b2_89;
    protected double ef6b5_90;
    protected double ef6k2_91;
    protected double ef6n2_92;
    protected double ef6n3_93;
    protected double eicdhb2_94;
    protected double eicdhb5_95;
    protected double eicdhn2_96;
    protected double eicdhn3_97;
    protected double esbfb5_100;
    protected double esbfn2_101;
    protected double esbfn3_102;
    protected double ka15p_123;
    protected double ka_121;
    protected double ka_122;
    protected double ka_124;
    protected double ka_125;
    protected double kacdh_126;
    protected double kacdh_127;
    protected double kaiep_128;
    protected double kamcm_129;
    protected double kasb2_130;
    protected double kasb5_131;
    protected double kasbf_132;
    protected double kasesp_133;
    protected double kasf2_134;
    protected double kasf5_135;
    protected double kasrent_136;
    protected double kasrentp_137;
    protected double kaswi_138;
    protected double kd14_139;
    protected double kd1c1_140;
    protected double kd1f6_141;
    protected double kd20_143;
    protected double kd2c1_144;
    protected double kd2f6_145;
    protected double kd3c1_147;
    protected double kd3f6_148;
    protected double kdb2p_152;
    protected double kdb_150;
    protected double kdb_151;
    protected double kdb_153;
    protected double kdb_154;
    protected double kdbud_155;
    protected double kdcdh_156;
    protected double kdib2_157;
    protected double kdib5_158;
    protected double kdiesp_159;
    protected double kdif2_160;
    protected double kdif5_161;
    protected double kdirent_162;
    protected double kdirentp_163;
    protected double kdn2_164;
    protected double kdnet_165;
    protected double kdori_166;
    protected double kdpds_142;
    protected double kdpds_146;
    protected double kdpds_149;
    protected double kdppx_167;
    protected double kdppx_168;
    protected double kdspn_169;
    protected double kdswi_170;
    protected double ki15_173;
    protected double kicdh_174;
    protected double kicdh_175;
    protected double kiiep_176;
    protected double kimcm_177;
    protected double kisbf_178;
    protected double kisbf_179;
    protected double kiswi_180;
    protected double kkpnet_181;
    protected double kkpnet_182;
    protected double kppc1_183;
    protected double kppf6_184;
    protected double kppnet_185;
    protected double kppnet_186;
    protected double lte1h_212;
    protected double lte1l_213;
    protected double mad2h_214;
    protected double mad2l_215;
    protected double mdt_216;
    protected double mu_39;

    public double[] extendResult(double time,double [] x)
    {
        this.time = time;
        double [] algebraicResult = new double [4];
        AlgFuncBegin_0(algebraicResult);
        this.x = x;
        try
        {
            NewtonSolver.solve(algebraicResult, this);
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }
        AlgFuncEnd_0(algebraicResult);

        __internalVarInitFunc_0(time, x);

        double[] y = new double[78];
        y[0] = _cell_0_BCK2_1_;
        y[1] = _cell_0_BUB2_2_;
        y[2] = x[0];
        y[3] = x[1];
        y[4] = x[2];
        y[5] = x[3];
        y[6] = x[4];
        y[7] = _cell_0_CDC14T_9_;
        y[8] = x[5];
        y[9] = x[6];
        y[10] = x[7];
        y[11] = x[8];
        y[12] = x[9];
        y[13] = x[10];
        y[14] = _cell_0_CDC6T_16_;
        y[15] = x[11];
        y[16] = x[12];
        y[17] = x[13];
        y[18] = _cell_0_CKIT_19_;
        y[19] = _cell_0_CLB2T_21_;
        y[20] = x[14];
        y[21] = _cell_0_CLB5T_23_;
        y[22] = x[15];
        y[23] = x[16];
        y[24] = _cell_0_CLN3_25_;
        y[25] = x[17];
        y[26] = x[18];
        y[27] = x[19];
        y[28] = x[20];
        y[29] = x[21];
        y[30] = x[22];
        y[31] = x[23];
        y[32] = _cell_0_LTE1_35_;
        y[33] = _cell_0_MAD2_36_;
        y[34] = _cell_0_MASS_37_;
        y[35] = _cell_0_MCM1_38_;
        y[36] = x[24];
        y[37] = _cell_0_NET1T_42_;
        y[38] = x[25];
        y[39] = x[26];
        y[40] = x[27];
        y[41] = x[28];
        y[42] = x[29];
        y[43] = x[30];
        y[44] = x[31];
        y[45] = _cell_0_SBF_49_;
        y[46] = x[32];
        y[47] = _cell_0_SIC1T_52_;
        y[48] = x[33];
        y[49] = x[34];
        y[50] = x[35];
        y[51] = x[36];
        y[52] = x[37];
        y[53] = x[38];
        y[54] = CDC15T_79;
        y[55] = D_26;
        y[56] = ESP1T_103;
        y[57] = F_28;
        y[58] = IET_104;
        y[59] = TEM1T_217;
        y[60] = Vacdh_58;
        y[61] = Vaiep_59;
        y[62] = Vasbf_60;
        y[63] = Vd2c1_61;
        y[64] = Vd2f6_62;
        y[65] = Vdb2_63;
        y[66] = Vdb5_64;
        y[67] = Vdpds_65;
        y[68] = Vdppx_66;
        y[69] = Vicdh_67;
        y[70] = Visbf_68;
        y[71] = Vkpc1_69;
        y[72] = Vkpf6_70;
        y[73] = Vkpnet_71;
        y[74] = Vppc1_72;
        y[75] = Vppf6_73;
        y[76] = Vppnet_74;
        y[77] = mu_39;
        return y;
    }
    public double[] getInitialValues()
    {
        double [] x = new double[39];
        this.time = 0.0;
        x[0] = 0.008473; // - $"cell_0.BUD_3"
        x[1] = 0.024034; // - $"cell_0.C2P_5"
        x[2] = 0.238404; // - $"cell_0.C2_4"
        x[3] = 0.006878; // - $"cell_0.C5P_7"
        x[4] = 0.070081; // - $"cell_0.C5_6"
        x[5] = 0.468344; // - $"cell_0.CDC14_8"
        x[6] = 0.656533; // - $"cell_0.CDC15_10"
        x[7] = 0.343466; // - $"cell_0.CDC15i_11"
        x[8] = 0.444296; // - $"cell_0.CDC20_12"
        x[9] = 1.472044; // - $"cell_0.CDC20i_13"
        x[10] = 0.015486; // - $"cell_0.CDC6P_15"
        x[11] = 0.10758; // - $"cell_0.CDC6_14"
        x[12] = 0.930499; // - $"cell_0.CDH1_17"
        x[13] = 0.0695; // - $"cell_0.CDH1i_18"
        x[14] = 0.1469227; // - $"cell_0.CLB2_20"
        x[15] = 0.0518014; // - $"cell_0.CLB5_22"
        x[16] = 0.0652511; // - $"cell_0.CLN2_24"
        x[17] = 0.301313; // - $"cell_0.ESP1_27"
        x[18] = 0.0273938; // - $"cell_0.F2P_30"
        x[19] = 0.236058; // - $"cell_0.F2_29"
        x[20] = 7.91E-5; // - $"cell_0.F5P_32"
        x[21] = 7.24E-5; // - $"cell_0.F5_31"
        x[22] = 0.1015; // - $"cell_0.IEP_34"
        x[23] = 0.8985; // - $"cell_0.IE_33"
        x[24] = 0.970271; // - $"cell_0.NET1P_41"
        x[25] = 0.018645; // - $"cell_0.NET1_40"
        x[26] = 9.09E-4; // - $"cell_0.ORI_43"
        x[27] = 0.025612; // - $"cell_0.PDS1_44"
        x[28] = 0.7; // - $"cell_0.PE_45"
        x[29] = 0.123179; // - $"cell_0.PPX_46"
        x[30] = 0.6; // - $"cell_0.RENTP_48"
        x[31] = 1.04954; // - $"cell_0.RENT_47"
        x[32] = 0.00641; // - $"cell_0.SIC1P_51"
        x[33] = 0.0228776; // - $"cell_0.SIC1_50"
        x[34] = 0.03; // - $"cell_0.SPN_53"
        x[35] = 0.02; // - $"cell_0.SWI5P_55"
        x[36] = 0.95; // - $"cell_0.SWI5_54"
        x[37] = 0.1; // - $"cell_0.TEM1GDP_56"
        x[38] = 0.9; // - $"cell_0.TEM1GTP_57"

        __internalVarInitFunc_0(time, x);
        __internalRateVarInitFunc_0(time, x);
        __internalRateVarInitFunc_1(time, x);

        return x;
    }

    protected double[] x = null;
    public double[] solveAlgebraic(double time, double[] z)
    {
        this.time = time;
        CDC15T_79 = z[0];
        ESP1T_103 = z[1];
        IET_104 = z[2];
        TEM1T_217 = z[3];
        double [] result = new double [4];
        result[0] = x[6] + x[7] - CDC15T_79;

        result[1] = x[23] + x[22] - IET_104;

        result[2] = x[17] + x[28] - ESP1T_103;

        result[3] = x[37] + x[38] - TEM1T_217;
        return result;
    }

/*
 * code for algebraic rules calculations
 */

    public void AlgFuncBegin_0(double [] algebraicResult)
    {
        algebraicResult[0] = CDC15T_79;
        algebraicResult[1] = ESP1T_103;
        algebraicResult[2] = IET_104;
        algebraicResult[3] = TEM1T_217;
    }
    public void AlgFuncEnd_0(double [] algebraicResult)
    {
        CDC15T_79 = algebraicResult[0];
        ESP1T_103 = algebraicResult[1];
        IET_104 = algebraicResult[2];
        TEM1T_217 = algebraicResult[3];
    }
/*
 * end of code for algebraic rules calculations
 */

    protected void calculateRates(double time, double[] x)
    {

        __internalVarInitFunc_0(time, x);
        __internalRateVarInitFunc_0(time, x);
        __internalRateVarInitFunc_1(time, x);

    }

        /*
         * calculate dy/dt for 'BIOMD0000000056.xml' model
         */
    public void __internalDyDt_0(double time, double [] x, double[] result)
    {
        result[0] = -rate__311;
        result[1] = -rate_DegradationofCLBinCP_248-rate_DegradationofSICinCP_246-rate_DephosphorylationofCP_241+rate_PhosphorylationofC_240;
        result[2] = +rate_AssocofCLBandSIC_236-rate_DegradationofCLBinC_244+rate_DephosphorylationofCP_241-rate_DissocofCLBSICcomplex_237-rate_PhosphorylationofC_240;
        result[3] = +rate__242-rate__243-rate__247-rate__249;
        result[4] = +rate_AssocofCLBandSIC_238-rate_DissocofCLBSIC_239-rate__242+rate__243-rate__245;
        result[5] = -rate_AssocwithNETPtoformRENTP_287-rate_AssocwithNETtoformRENT_285+rate_DegradationofNETPinRENTP_296+rate_DegradationofNETinRENT_295+rate_DissocfromRENP_288+rate_DissocfromRENT_286-rate__284;
        result[6] = +rate_CDCactivation_301-rate_inactivation_300_CDC15;
        result[7] = -rate_CDCactivation_301+rate_inactivation_300_CDC15;
        result[8] = +rate_ActivationofCDC_278-rate_DegradationofactiveCDC_277-rate_Inactivation_274_CDC20;
        result[9] = -rate_ActivationofCDC_278-rate_DegradationofinactiveCDC_276+rate_Inactivation_274_CDC20;
        result[10] = +rate__251-rate__252-rate__253+rate__266+rate__267;
        result[11] = -rate__251+rate__252-rate__254+rate__255-rate__256+rate__257+rate__262+rate__263;
        result[12] = +rate_Activation_282-rate_Inactivation_274_CDH1-rate__280;
        result[13] = -rate_Activation_282+rate_Inactivation_274_CDH1-rate__281;
        result[14] = -rate_AssocofCLBandSIC_236-rate_DegradationofCLB_229+rate_DegradationofSICinCP_246+rate_DissocofCLBSICcomplex_237-rate__254+rate__255+rate__264;
        result[15] = -rate_AssocofCLBandSIC_238-rate_DegradationofCLB_231+rate_DissocofCLBSIC_239+rate__247-rate__256+rate__257+rate__265;
        result[16] = -rate_DegradationofCLN_227;
        result[17] = -rate_AssocwithESPtoformPE_306+rate_DegradationofPDSinPE_305+rate_DissofromPE_307;
        result[18] = +rate__258-rate__259-rate__264-rate__266;
        result[19] = +rate__254-rate__255-rate__258+rate__259-rate__262;
        result[20] = +rate__260-rate__261-rate__265-rate__267;
        result[21] = +rate__256-rate__257-rate__260+rate__261-rate__263;
        result[22] = +rate_ActivationofIEP_273-rate_Inactivation_274_IEP;
        result[23] = -rate_ActivationofIEP_273+rate_Inactivation_274_IEP;
        result[24] = -rate_AssocwithNETPtoformRENTP_287+rate_DegradationofCDCinRENTP_298+rate_DissocfromRENP_288+rate_NETphosphorylation_292-rate__291-rate_dephosphorylation_293_NET1P;
        result[25] = -rate_AssocwithNETtoformRENT_285+rate_DegradationofCDCinRENT_297+rate_DissocfromRENT_286-rate_NETphosphorylation_292-rate__290+rate_dephosphorylation_293_NET1P;
        result[26] = -rate__309;
        result[27] = -rate_AssocwithESPtoformPE_306+rate_DissofromPE_307-rate_degradation_303_PDS1;
        result[28] = +rate_AssocwithESPtoformPE_306-rate_DegradationofPDSinPE_305-rate_DissofromPE_307;
        result[29] = -rate_degradation_303_PPX;
        result[30] = +rate_AssocwithNETPtoformRENTP_287-rate_DegradationofCDCinRENTP_298-rate_DegradationofNETPinRENTP_296-rate_DissocfromRENP_288+rate_RENTphosphorylation_294-rate_dephosphorylation_293_RENTP;
        result[31] = +rate_AssocwithNETtoformRENT_285-rate_DegradationofCDCinRENT_297-rate_DegradationofNETinRENT_295-rate_DissocfromRENT_286-rate_RENTphosphorylation_294+rate_dephosphorylation_293_RENTP;
        result[32] = +rate_DegradationofCLBinCP_248-rate_DephosphorylationofSIC_234-rate_FastDegradationofSICP_235+rate_PhosphorylationofSIC_233+rate__249;
        result[33] = -rate_AssocofCLBandSIC_236-rate_AssocofCLBandSIC_238+rate_DegradationofCLBinC_244+rate_DephosphorylationofSIC_234+rate_DissocofCLBSIC_239+rate_DissocofCLBSICcomplex_237-rate_PhosphorylationofSIC_233+rate__245;
        result[34] = -rate__313;
        result[35] = -rate_ActivationofSWI_271-rate_DegradationofSWIP_270+rate_InactivationofSWI_272;
        result[36] = +rate_ActivationofSWI_271-rate_DegradationofSWI_269-rate_InactivationofSWI_272;
        result[37] = -rate_TEMactivation_299+rate_inactivation_300_TEM1GTP;
        result[38] = +rate_TEMactivation_299-rate_inactivation_300_TEM1GTP;
    }
    protected double [] calculateResult(double time, double[] x)
    {
        double[] result = new double[39];
        __internalDyDt_0(time, x, result);
        return result;
    }
    public double[] dy_dt(double time, double[] x)
    {
        this.time = time;
        double [] algebraicResult = new double [4];
        AlgFuncBegin_0(algebraicResult);
        this.x = x;
        try
        {
            NewtonSolver.solve(algebraicResult, this);
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }
        AlgFuncEnd_0(algebraicResult);
        calculateRates( time,x );

        return calculateResult( time,x );
    }

    public double[] checkEvent(double time, double[] x)
    {
        this.time = time;

        __internalVarInitFunc_0(time, x);
        __internalRateVarInitFunc_0(time, x);
        __internalRateVarInitFunc_1(time, x);

        double [] flags = new double[4];
        flags[0] = (x[14] + x[15] - KEZ2_172 < 0.0) ? +1 : -1; //event_1
        flags[1] = (x[26] - 1.0 > 0.0) ? +1 : -1; //event_2
        flags[2] = (x[34] - 1.0 > 0.0) ? +1 : -1; //event_3
        flags[3] = (x[14] - KEZ_171 < 0.0) ? +1 : -1; //event_4
        return flags;
    }

    public void processEvent(int __internalVar12060038815150, double time, double[] x)
    {
        this.time = time;
        if ( __internalVar12060038815150 == 0) //event_1
        {
            x[26] = 0.0;
        } else if ( __internalVar12060038815150 == 1) //event_2
        {
            _cell_0_MAD2_36_ = mad2h_214;
            _cell_0_BUB2_2_ = bub2h_76;
        } else if ( __internalVar12060038815150 == 2) //event_3
        {
            _cell_0_MAD2_36_ = mad2l_215;
            _cell_0_LTE1_35_ = lte1h_212;
            _cell_0_BUB2_2_ = bub2l_77;
        } else if ( __internalVar12060038815150 == 3) //event_4
        {
            _cell_0_MASS_37_ = F_28*_cell_0_MASS_37_;
            _cell_0_LTE1_35_ = lte1l_213;
            x[0] = 0.0;
            x[34] = 0.0;
        }
    }

    protected double BB_218(double A1, double A2, double A3, double A4)
    {
         return A2 - A1 + A3*A2 + A4*A1;
    }
    protected double GK_219(double A1, double A2, double A3, double A4)
    {
         return 2.0*A4*A1/(BB_218(A1, A2, A3, A4) + Math.pow(Math.pow(BB_218(A1, A2, A3, A4), 2.0) - 4.0*(A2 - A1)*A4*A1, 1.0/( (double)(2.0))));
    }
    protected double Mass_Action_0_223(double k1)
    {
         return k1;
    }
    protected double Mass_Action_1_222(double k1, double S1)
    {
         return k1*S1;
    }
    protected double Mass_Action_2_221(double k1, double S1, double S2)
    {
         return k1*S1*S2;
    }
    protected double MichaelisMenten_220(double M1, double J1, double k1, double S1)
    {
         return k1*S1*M1/(J1 + S1);
    }
} // class ...