From: trevor_hansen Date: Mon, 27 Feb 2012 12:56:07 +0000 (+0000) Subject: Improvement. Sometimes the interface throws division by zero errors, making division... X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=0830c37414d617d282b2e76406f9c7772980c5d9;p=francis%2Fstp.git Improvement. Sometimes the interface throws division by zero errors, making division a total function avoids them. Thanks to Tom Bergan for reporting the problem. git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@1573 e59a4935-1847-0410-ae03-e826735625c1 --- diff --git a/src/c_interface/c_interface.cpp b/src/c_interface/c_interface.cpp index bfbab66..52cade4 100644 --- a/src/c_interface/c_interface.cpp +++ b/src/c_interface/c_interface.cpp @@ -68,6 +68,12 @@ void vc_setInterfaceFlags(VC vc, enum ifaceflag_t f, int param_value) { } } +void make_division_total(VC vc) +{ + bmstar b = (bmstar)(((stpstar)vc)->bm); + b->UserFlags.division_by_zero_returns_one_flag = true; +} + //Create a validity Checker. This is the global STPMgr VC vc_createValidityChecker(void) { CONSTANTBV::ErrCode c = CONSTANTBV::BitVector_Boot(); diff --git a/src/c_interface/c_interface.h b/src/c_interface/c_interface.h index 2184727..57f7921 100644 --- a/src/c_interface/c_interface.h +++ b/src/c_interface/c_interface.h @@ -66,6 +66,10 @@ extern "C" { }; void vc_setInterfaceFlags(VC vc, enum ifaceflag_t f, int param_value); + // defines division by zero to equal 1, x%0 to equal x. + // avoids division by zero errors. + void make_division_total(VC vc); + //! Flags can be NULL VC vc_createValidityChecker(void);