#include "user.h" #include void parameters() { iopt(IOP_METHOD,VAL_GASEI); iopt(IOP_PR_FULL_MARK,VAL_YES); iopt(IOP_PR_RSET,VAL_NO); iopt(IOP_ITERATIONS,20000); fopt(FOP_PRECISION,0.00000001); iopt(IOP_PR_RGRAPH,VAL_NO); iopt(IOP_PR_MC,VAL_NO); iopt(IOP_PR_PROB,VAL_NO); iopt(IOP_MC,VAL_CTMC); iopt(IOP_DEBUG,VAL_NO); } void net() { place("p1"); place("p2"); place("p3"); place("p4"); place("p5"); place("p6"); place("p7"); trans("t1"); trans("t2"); trans("t3"); trans("t4"); trans("t5"); trans("t6"); trans("t7"); ratedep("t1", 0.02, "p1"); ratedep("t6", 0.05, "p6"); rateval("t7", 0.01); probval("t2", 0.6); priority("t2", 1); probval("t3", 0.4); priority("t3", 1); probval("t4", 1.0); priority("t4", 1); probval("t5", 1.0); priority("t5", 1); init("p1",5); init("p5",1); iarc("t1","p1"); iarc("t2","p2"); iarc("t3","p2"); iarc("t4","p3"); iarc("t4","p5"); iarc("t5","p4"); iarc("t5","p5"); iarc("t6","p6"); iarc("t7","p7"); oarc("t1","p2"); oarc("t2","p3"); oarc("t3","p4"); oarc("t4","p6"); oarc("t4","p5"); oarc("t5","p7"); oarc("t6","p1"); oarc("t7","p5"); oarc("t7","p1"); harc("t5","p6"); } int assert(){ if (mark("p7") > 1 || enabled("t6") && enabled("t7")) return(RES_ERROR); return(RES_NOERR); } void ac_init() { pr_net_info(); } void ac_reach() { printf("The reachability graph has been generated\n"); } double util() { if (enabled("t6") || enabled("t7")) return(1.0); else return(0.0); } double tput() { if (enabled("t7")) return(0.01); else if (enabled("t6")) return(0.05*mark("p6")); else return(0.0); } void ac_final() { pr_mc_info(); pr_std_average(); pr_expected("Utilisation",util); pr_expected("Throughput",tput); }