|
|
@ -187,7 +187,7 @@ jlong __jlongpointer mu // probs for multiplying |
|
|
for (i = fgw.left; i <= fgw.right; i++) { |
|
|
for (i = fgw.left; i <= fgw.right; i++) { |
|
|
fgw.weights[i-fgw.left] /= fgw.total_weight; |
|
|
fgw.weights[i-fgw.left] /= fgw.total_weight; |
|
|
} |
|
|
} |
|
|
PM_PrintToMainLog(env, "Fox-Glynn: left = %d, right = %d\n", fgw.left, fgw.right); |
|
|
|
|
|
|
|
|
PM_PrintToMainLog(env, "Fox-Glynn: left = %ld, right = %ld\n", fgw.left, fgw.right); |
|
|
|
|
|
|
|
|
// PM_PrintToMainLog(env, "right-left = %d\n", fgw.right-fgw.left);
|
|
|
// PM_PrintToMainLog(env, "right-left = %d\n", fgw.right-fgw.left);
|
|
|
// PM_PrintToMainLog(env, "total_weight = %f\n", fgw.total_weight);
|
|
|
// PM_PrintToMainLog(env, "total_weight = %f\n", fgw.total_weight);
|
|
|
@ -288,7 +288,7 @@ jlong __jlongpointer mu // probs for multiplying |
|
|
// add to sum
|
|
|
// add to sum
|
|
|
Cudd_Ref(tmp); |
|
|
Cudd_Ref(tmp); |
|
|
sum = DD_Apply(ddman, APPLY_PLUS, sum, DD_Apply(ddman, APPLY_TIMES, tmp, DD_Constant(ddman, weight))); |
|
|
sum = DD_Apply(ddman, APPLY_PLUS, sum, DD_Apply(ddman, APPLY_TIMES, tmp, DD_Constant(ddman, weight))); |
|
|
PM_PrintToMainLog(env, "\nSteady state detected at iteration %d\n", iters); |
|
|
|
|
|
|
|
|
PM_PrintToMainLog(env, "\nSteady state detected at iteration %ld\n", iters); |
|
|
num_iters = iters; |
|
|
num_iters = iters; |
|
|
Cudd_RecursiveDeref(ddman, tmp); |
|
|
Cudd_RecursiveDeref(ddman, tmp); |
|
|
break; |
|
|
break; |
|
|
@ -314,7 +314,7 @@ jlong __jlongpointer mu // probs for multiplying |
|
|
|
|
|
|
|
|
// print iterations/timing info
|
|
|
// print iterations/timing info
|
|
|
if (num_iters == -1) num_iters = fgw.right; |
|
|
if (num_iters == -1) num_iters = fgw.right; |
|
|
PM_PrintToMainLog(env, "\nIterative method: %d iterations in %.2f seconds (average %.6f, setup %.2f)\n", num_iters, time_taken, time_for_iters/num_iters, time_for_setup); |
|
|
|
|
|
|
|
|
PM_PrintToMainLog(env, "\nIterative method: %ld iterations in %.2f seconds (average %.6f, setup %.2f)\n", num_iters, time_taken, time_for_iters/num_iters, time_for_setup); |
|
|
|
|
|
|
|
|
// free memory
|
|
|
// free memory
|
|
|
if (combine) { |
|
|
if (combine) { |
|
|
@ -328,6 +328,8 @@ jlong __jlongpointer mu // probs for multiplying |
|
|
} |
|
|
} |
|
|
Cudd_RecursiveDeref(ddman, diags); |
|
|
Cudd_RecursiveDeref(ddman, diags); |
|
|
Cudd_RecursiveDeref(ddman, sol); |
|
|
Cudd_RecursiveDeref(ddman, sol); |
|
|
|
|
|
|
|
|
|
|
|
if (fgw.weights) delete[] fgw.weights; |
|
|
|
|
|
|
|
|
return ptr_to_jlong(sum); |
|
|
return ptr_to_jlong(sum); |
|
|
} |
|
|
} |
|
|
|