summaryrefslogtreecommitdiff
path: root/src/util
AgeCommit message (Collapse)Author
2018-08-26Use uniform length limit for String constants (#2381)Andres Noetzli
2018-08-15Remove unused tuple classes (#2313)Andres Noetzli
Since we are using C++11, we can replace the triple and quad classes with std::tuple.
2018-08-15Remove unused class DynamicArray (#2312)Andres Noetzli
2018-08-13Fix get-unsat-assumptions output (#2301)Andres Noetzli
Fixes #2298. The `get-unsat-assumptions` command was printing the result with square brackets and commas instead of parentheses and spaces between the assumptions.
2018-08-10Fix portfolio command executor for changes from #2240. (#2294)Aina Niemetz
2018-08-09 Fix char overflow issues in regular expression solver (#2275)Andrew Reynolds
2018-08-07Require Swig 3 (#2283)Andres Noetzli
Removes some hacks due to Swig 2's incomplete C++11 support and adds checks for version 3 at configuration time as well as in swig.h
2018-08-07Delete functions instead of using CVC4_UNDEFINED (#1794)Andres Noetzli
C++11 supports explicitly deleting functions that should not be used (explictly or implictly), e.g. copy or assignment constructors. We were previously using the CVC4_UNDEFINED macro that used a compiler-specific attribute. The C++11 feature should be more portable.
2018-08-07Make output of flushInformation and safeFlushInformation consistent. (#2280)Mathias Preiner
2018-08-03Fix printing statistics in case of signals. (#2267)Mathias Preiner
2018-07-21Optimizations and fixes for computing whether a type is finite (#2179)Andrew Reynolds
2018-07-15Avoid ambiguous overloads in BitVector (#2169)Andres Noetzli
`long` is a 32-bit integer on Windows. CVC4's BitVector class had a constructor for `unsigned int` and `unsigned long`, which lead to issues with the new CVC4 C++ API because the two constructors were ambiguous overloads. This commit changes the constructors to use `uint32_t` and `uint64_t`, which are plattform independent and more explicit (mirroring
2018-07-08Add more sophisticated floating-point sampler (#2155)Andres Noetzli
This commit adds a floating-point sampler inspired by PyMPF [0]. It also creates a new Sampler class that can be used for creating random values of different sorts (currently BV and FP values). [0] https://github.com/florianschanda/PyMPF
2018-07-04More cleanup in strings (#2138)Andrew Reynolds
2018-07-03New C++ API: Implementation of Term. (#2131)Aina Niemetz
2018-06-25Updated copyright headers.Aina Niemetz
2018-06-20Resolve CVC4_USE_SYMFPU in headers at config-time (#2077)Andres Noetzli
As described in issue #2013, we had `#ifdef CVC4_USE_SYMFPU` conditions in floatingpoint.h, which was problematic when installing the header files because the definition of `CVC4_USE_SYMFPU` was a compile-flag and simply including the header files in another project would be missing that definition. This commit moves floatingpoint.h to a template file floatingpoint.h.in and substitutes the value of `CVC4_USE_SYMFPU` at configure-time when generating floatingpoint.h (this is the same solution that integer.h and rational.h use). I have tested the fix with the examples provided in #2013 and they work.
2018-05-15Floating point theory solver based on SymFPU (#1895)Martin
* Add some symfpu accessor functions to reduce the size of the literal 'back-end'. * Enable the bit-vector theory when setting the logic, not in expandDefinition. This is needed because it is possible to add variables of float or rounding mode sort but not use any theory specific functions or predicates and thus not enable the bit-vector theory. * Use symfpu to implement the literal floating-point objects. * Add kinds for bit-blasted components. * Print the new kinds. * Typing rules for the new kinds. * Constant folding for the component kinds. * Add support for components to the theory solver. * Add explicit equivalences between classification functions and equalities. * Use symfpu to do symbolic conversions of floating-point operations. * Implement conversions via (over-)approximation and refinement. * Correct a copy and paste error in the generation of uninterpretted functions for conversions.
2018-05-08Support for str.<= and str.< (#1882)Andrew Reynolds
2018-05-07Add support for str.code (#1821)Andrew Reynolds
2018-05-02Initial support for string standard in smt lib 2.6 (#1848)Andrew Reynolds
2018-04-20Remove unused cache.h (#1795)Andres Noetzli
2018-03-23Remove abstract regular expression constant (#1698)Andrew Reynolds
2018-03-06Make statistics output consistent. (#1647)Mathias Preiner
* Fixes --hide-zero-stats (and really skips the 0 values) * Removes the additional newline after each statistic * Introduces theory::getStatsPrefix(TheoryId) to generate consistent prefixes for statistics based on the theory id (e.g., THEORY_BV -> "theory::bv").
2018-03-05Enable -Wsuggest-override by default. (#1643)Mathias Preiner
Adds missing override keywords.
2018-03-05Add uniform way to serialize containers of Expr to stream. (#1638)Aina Niemetz
2018-02-27Improve rewriter for string indexof (#1592)Andrew Reynolds
2018-02-23Add unit tests for BitVector, minor BV rewrite fix (#1622)Andres Noetzli
This commit adds unit tests for the BitVector class and adds some additional argument checks. Additionally, it fixes a minor issue in the ZeroExtendUltConst rule if the zero_extend was by 0 bits. In that case, the rule was calling BitVector::extract() with high < low.
2018-02-23Split and document bitvector.h. (#1615)Aina Niemetz
2018-02-09Move BitVector specific funs from bv::utils to util/bitvector.h. (#1589)Aina Niemetz
2018-02-09Renaming CHECK to CVC4_CHECK. This avoids name collisions with other popular ↵Tim King
assertion macros. This name is likely temporary while Assert() is deprecated. (#1590)
2018-02-08Initializing Timer::d_wall_limit (CID 1362899). (#1573)Tim King
2018-02-07Adds a new CHECK macro that abort()s on failure. (#1532)Tim King
2018-02-05Aborting on errors in StatisticsRegistry::unregisterStat() instead of ↵Tim King
throwing exceptions. This is called from destructors and therefore it is inappropraiate to throw exceptions. This solution is temporary until Assert() is deprecated in favor of an aborting version. (#1539)
2018-02-02Restoring ostream format. Resolves a few CIDs 1362780. (#1543)Tim King
2018-01-15Removing more miscellaneous throw specifiers. (#1509)Tim King
Removing more miscellaneous throw specifiers. Also fixing the spelling of amount in several places.
2018-01-09Cleaning up throw specifiers on Exception and subclasses. (#1475)Tim King
2018-01-09Reorganized bitvector.h. (#1505)Aina Niemetz
2018-01-08Removing more miscellaneous throw specifiers. (#1488)Tim King
Removing more miscellaneous throw specifiers.
2018-01-07Removes RationalFromDoubleException. Replaces this with an explicit M… (#1476)Tim King
* Removes RationalFromDoubleException. Replaces this with an explicit Maybe<Rational> datatype. Makes Maybe<T> CVC4_PUBLIC. Updates the users of Rational::fromDouble(). Miscellaneous cleanup of ApproxSimplex.
2017-12-29Fix RNG for seed = 0. (#1459)Aina Niemetz
The default value for the seed for CVC4's RNG is 0. However, xorshift* requires a non-zero seed, else it generates only zero values. This fixes and prevents this behavior by resetting a given zero seed to ~0.
2017-11-17Add random number generator. (#1370)Aina Niemetz
This adds a deterministic (seeded) random number generator (RNG). It implements the xorshift* generator (see S. Vigna, An experimental exploration of Marsaglia's xorshift generators, scrambled. ACM Trans. Math. Softw. 42(4): 30:1-30:23, 2016).
2017-11-15Adding garbage collection for Proof objects. (#1294)Tim King
2017-11-09Add modular arithmetic operators. (#1321)Aina Niemetz
This adds functions on Integers to compute modular addition, multiplication and inverse. This is required for the Gaussian Elimination preprocessing pass for BV.
2017-11-07 Initialize TimerStat::d_start. (#1330)Tim King
* Initialize TimerStat::d_start. * 0 initializing d_data.
2017-11-06Add getValue() for Rational and Integer (GMP and CLN). (#1309)Aina Niemetz
Returns a copy of d_value to enable public access of GMP and CLN data.
2017-10-27Improve strings rewriter for contains (#1207)Andrew Reynolds
* Work on rewriter for string contains. * Add rewrites that mix str.to.int and str.contains. Documentation, add regression. * Minor * Minor * Address review, add a few TODOs. Improve some non-digit -> not is number. * Fix * Simplify. * Clang format, minor fixing of comments.
2017-10-25Use uintptr_t for pointer casts in Swig files (#1278)Andres Noetzli
CVC4's Swig interface files were casting pointers to longs in multiple instances. The problem with that is that on certain platforms *cough* Windows/MinGW *cough* long is only 32-bit even when compiling a 64-bit executable (they use the LLP64 data model). This made the compilation of language bindings fail with MinGW. This commit changes the types to uintptr_t defined in Swig's stdint.i.
2017-10-18Strings API escape sequences (#1245)Andrew Reynolds
* Argument for strings class to specify whether to process escape sequences. * Change default value on string constructor. * Make CVC4::String::toString symmetric to the constructor for CVC4::String, document. * Clang format.
2017-09-29Better hash function for pairs (#1157)Andres Noetzli
CVC4 was computing hashes for pairs of objects by simply XORing the hashes of the two objects. This commit implements a better way of combining hashes based on the FNV-1a hash algorithm. The algorithm is public domain.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback