From 7ae5a96d0865b1e7f81f589c5198de0bb18cfd0f Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Wed, 2 Aug 2017 11:31:01 +0000 Subject: [PATCH] PM_ExportMatrix: use int64_t for ODD indexing, adapt printf format string git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@12182 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/mtbdd/PM_ExportMatrix.cc | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/prism/src/mtbdd/PM_ExportMatrix.cc b/prism/src/mtbdd/PM_ExportMatrix.cc index 773c318e..5ac202e8 100644 --- a/prism/src/mtbdd/PM_ExportMatrix.cc +++ b/prism/src/mtbdd/PM_ExportMatrix.cc @@ -26,6 +26,7 @@ // includes #include "PrismMTBDD.h" +#include #include #include #include @@ -36,7 +37,7 @@ //------------------------------------------------------------------------------ // local function prototypes -static void export_rec(DdNode *dd, DdNode **rvars, DdNode **cvars, int num_vars, int level, ODDNode *row, ODDNode *col, long r, long c); +static void export_rec(DdNode *dd, DdNode **rvars, DdNode **cvars, int num_vars, int level, ODDNode *row, ODDNode *col, int64_t r, int64_t c); // globals static const char *export_name; @@ -69,8 +70,8 @@ jstring fn // filename // print file header switch (export_type) { - case EXPORT_PLAIN: export_string("%d %.0f\n", odd->eoff+odd->toff, DD_GetNumMinterms(ddman, matrix, num_rvars+num_cvars)); break; - case EXPORT_MATLAB: export_string("%s = sparse(%d,%d);\n", export_name, odd->eoff+odd->toff, odd->eoff+odd->toff); break; + case EXPORT_PLAIN: export_string("%" PRId64 " %.0f\n", odd->eoff+odd->toff, DD_GetNumMinterms(ddman, matrix, num_rvars+num_cvars)); break; + case EXPORT_MATLAB: export_string("%s = sparse(%" PRId64 ",%" PRId64 ");\n", export_name, odd->eoff+odd->toff, odd->eoff+odd->toff); break; case EXPORT_DOT: case EXPORT_DOT_STATES: export_string("digraph %s {\nsize=\"8,5\"\nnode [shape = box];\n", export_name); break; } @@ -92,7 +93,7 @@ jstring fn // filename //------------------------------------------------------------------------------ -static void export_rec(DdNode *dd, DdNode **rvars, DdNode **cvars, int num_vars, int level, ODDNode *row, ODDNode *col, long r, long c) +static void export_rec(DdNode *dd, DdNode **rvars, DdNode **cvars, int num_vars, int level, ODDNode *row, ODDNode *col, int64_t r, int64_t c) { DdNode *e, *t, *ee, *et, *te, *tt; @@ -102,9 +103,9 @@ static void export_rec(DdNode *dd, DdNode **rvars, DdNode **cvars, int num_vars, // base case - non zero terminal if (level == num_vars) { switch (export_type) { - case EXPORT_PLAIN: export_string("%d %d %.12g\n", r, c, Cudd_V(dd)); break; - case EXPORT_MATLAB: export_string("%s(%d,%d)=%.12g;\n", export_name, r+1, c+1, Cudd_V(dd)); break; - case EXPORT_DOT: case EXPORT_DOT_STATES: export_string("%d -> %d [ label=\"%.12g\" ];\n", r, c, Cudd_V(dd)); break; + case EXPORT_PLAIN: export_string("%" PRId64 " %" PRId64 " %.12g\n", r, c, Cudd_V(dd)); break; + case EXPORT_MATLAB: export_string("%s(%" PRId64 ",%" PRId64 ")=%.12g;\n", export_name, r+1, c+1, Cudd_V(dd)); break; + case EXPORT_DOT: case EXPORT_DOT_STATES: export_string("%" PRId64 " -> %" PRId64 " [ label=\"%.12g\" ];\n", r, c, Cudd_V(dd)); break; } return; }