mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 13:29:11 +00:00 
			
		
		
		
	Final adjustments for the FP integration
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
		
							parent
							
								
									1209302fe6
								
							
						
					
					
						commit
						2cb84280d8
					
				
					 7 changed files with 192 additions and 216 deletions
				
			
		| 
						 | 
				
			
			@ -3,11 +3,13 @@ RELEASE NOTES
 | 
			
		|||
Version 4.4
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
- New feature: Support for the theory of floating-point numbers. This comes in the form of logics (QF_FP and QF_FPBV), tactics (qffp and qffpbv), as well as a theory plugin that allows theory combinations. Z3 supports the official SMT theory definition of FP (see http://smtlib.cs.uiowa.edu/theories/FloatingPoint.smt2) in SMT2 files, as well as all APIs.
 | 
			
		||||
 | 
			
		||||
- New feature: Stochastic local search engine for bit-vector formulas (see the qfbv-sls tactic).
 | 
			
		||||
  See also: Froehlich, Biere, Wintersteiger, Hamadi: Stochastic Local Search 
 | 
			
		||||
  for Satisfiability Modulo Theories, AAAI 2015.
 | 
			
		||||
 | 
			
		||||
- Fixed various bugs reported by Marc Brockschmidt, Venkatesh-Prasad Ranganath, Enric Carbonell, Morgan Deters, Tom Ball, and Codeplex users rsas, clockish, Heizmann.
 | 
			
		||||
- Fixed various bugs reported by Marc Brockschmidt, Venkatesh-Prasad Ranganath, Enric Carbonell, Morgan Deters, Tom Ball, Malte Schwerhoff, and Codeplex users rsas, clockish, Heizmann.
 | 
			
		||||
 | 
			
		||||
Version 4.3.2
 | 
			
		||||
=============
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,7 @@ try:
 | 
			
		|||
    cleanup_API('../src/api/z3_polynomial.h', 'tmp/z3_polynomial.h')
 | 
			
		||||
    cleanup_API('../src/api/z3_rcf.h', 'tmp/z3_rcf.h')
 | 
			
		||||
    cleanup_API('../src/api/z3_interp.h', 'tmp/z3_interp.h')
 | 
			
		||||
    cleanup_API('../src/api/z3_fpa.h', 'tmp/z3_fpa.h')
 | 
			
		||||
    
 | 
			
		||||
    print "Removed annotations from z3_api.h."
 | 
			
		||||
    try:
 | 
			
		||||
| 
						 | 
				
			
			@ -46,6 +47,7 @@ try:
 | 
			
		|||
    os.remove('tmp/z3_polynomial.h')
 | 
			
		||||
    os.remove('tmp/z3_rcf.h')
 | 
			
		||||
    os.remove('tmp/z3_interp.h')
 | 
			
		||||
    os.remove('tmp/z3_fpa.h')
 | 
			
		||||
    print "Removed temporary file z3_api.h."
 | 
			
		||||
    os.remove('tmp/website.dox')	
 | 
			
		||||
    print "Removed temporary file website.dox"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -713,39 +713,10 @@ FILE_PATTERNS          = website.dox \
 | 
			
		|||
			 z3_polynomial.h \
 | 
			
		||||
			 z3_rcf.h \
 | 
			
		||||
			 z3_interp.h \
 | 
			
		||||
			 z3_fpa.h \
 | 
			
		||||
                         z3++.h \
 | 
			
		||||
                         z3py.py \
 | 
			
		||||
                         ApplyResult.cs \
 | 
			
		||||
                         AST.cs \
 | 
			
		||||
                         ASTMap.cs \
 | 
			
		||||
                         ASTVector.cs \
 | 
			
		||||
                         Config.cs \
 | 
			
		||||
                         Constructor.cs \
 | 
			
		||||
                         Context.cs \
 | 
			
		||||
                         DecRefQUeue.cs \
 | 
			
		||||
                         Enumerations.cs \
 | 
			
		||||
                         Expr.cs \
 | 
			
		||||
                         FuncDecl.cs \
 | 
			
		||||
                         FuncInterp.cs \
 | 
			
		||||
                         Goal.cs \
 | 
			
		||||
                         Log.cs \
 | 
			
		||||
                         Model.cs \
 | 
			
		||||
                         Native.cs \
 | 
			
		||||
                         Numeral.cs \
 | 
			
		||||
                         Params.cs \
 | 
			
		||||
                         Pattern.cs \
 | 
			
		||||
                         Probe.cs \
 | 
			
		||||
                         Quantifier.cs \
 | 
			
		||||
                         Solver.cs \
 | 
			
		||||
                         Sort.cs \
 | 
			
		||||
                         Statistics.cs \
 | 
			
		||||
                         Status.cs \
 | 
			
		||||
                         Symbol.cs \
 | 
			
		||||
                         Tactic.cs \
 | 
			
		||||
                         Util.cs \
 | 
			
		||||
                         Version.cs \
 | 
			
		||||
                         Z3Exception.cs \
 | 
			
		||||
                         Z3Object.cs \
 | 
			
		||||
						 *.cs \
 | 
			
		||||
                         *.java
 | 
			
		||||
 | 
			
		||||
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2000,6 +2000,15 @@ public class Context extends IDisposable
 | 
			
		|||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a universal Quantifier.
 | 
			
		||||
	 * @param sorts the sorts of the bound variables. 
 | 
			
		||||
	 * @param names names of the bound variables 
 | 
			
		||||
	 * @param body the body of the quantifier. 
 | 
			
		||||
	 * @param weight quantifiers are associated with weights indicating the importance of using the quantifier during instantiation. By default, pass the weight 0.
 | 
			
		||||
     * @param patterns array containing the patterns created using {@code MkPattern}. 
 | 
			
		||||
	 * @param noPatterns array containing the anti-patterns created using {@code MkPattern}. 
 | 
			
		||||
	 * @param quantifierID optional symbol to track quantifier. 
 | 
			
		||||
	 * @param skolemID optional symbol to track skolem constants.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * Remarks:  Creates a forall formula, where
 | 
			
		||||
     * {@code weight"/> is the weight, <paramref name="patterns} is
 | 
			
		||||
     * an array of patterns, {@code sorts} is an array with the sorts
 | 
			
		||||
| 
						 | 
				
			
			@ -2007,18 +2016,6 @@ public class Context extends IDisposable
 | 
			
		|||
     * 'names' of the bound variables, and {@code body} is the body
 | 
			
		||||
     * of the quantifier. Quantifiers are associated with weights indicating the
 | 
			
		||||
     * importance of using the quantifier during instantiation.
 | 
			
		||||
     * 
 | 
			
		||||
	 * @param sorts the sorts of the bound variables. 
 | 
			
		||||
	 * @param names names of the bound variables 
 | 
			
		||||
	 * @param body the body of the quantifier. 
 | 
			
		||||
	 * @param weight quantifiers are
 | 
			
		||||
     * associated with weights indicating the importance of using the quantifier
 | 
			
		||||
     * during instantiation. By default, pass the weight 0.
 | 
			
		||||
     * @param patterns array containing the patterns created using
 | 
			
		||||
     * {@code MkPattern}. 
 | 
			
		||||
	 * @param noPatterns array containing the anti-patterns created using {@code MkPattern}. 
 | 
			
		||||
	 * @param quantifierID optional symbol to track quantifier. 
 | 
			
		||||
	 * @param skolemID optional symbol to track skolem constants.
 | 
			
		||||
     **/
 | 
			
		||||
    public Quantifier mkForall(Sort[] sorts, Symbol[] names, Expr body,
 | 
			
		||||
            int weight, Pattern[] patterns, Expr[] noPatterns,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -173,7 +173,7 @@ public class Fixedpoint extends Z3Object
 | 
			
		|||
 | 
			
		||||
    /**
 | 
			
		||||
     * Backtrack one backtracking point.
 | 
			
		||||
	 * Remarks: Note that an exception is thrown if {#code pop} 
 | 
			
		||||
	 * Remarks: Note that an exception is thrown if {@code pop} 
 | 
			
		||||
	 * is called without a corresponding {@code push}
 | 
			
		||||
     *  
 | 
			
		||||
	 * @see push
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -769,7 +769,7 @@ typedef enum
 | 
			
		|||
         - gcd-test - Indicates an integer linear arithmetic lemma that uses a gcd test.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      - Z3_OP_PR_HYPER_RESOLVE: Hyper-resolution rule.
 | 
			
		||||
    - Z3_OP_PR_HYPER_RESOLVE: Hyper-resolution rule.
 | 
			
		||||
 | 
			
		||||
        The premises of the rules is a sequence of clauses.
 | 
			
		||||
        The first clause argument is the main clause of the rule.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										340
									
								
								src/api/z3_fpa.h
									
										
									
									
									
								
							
							
						
						
									
										340
									
								
								src/api/z3_fpa.h
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -38,7 +38,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the RoundingMode sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_rounding_mode_sort', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +47,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_round_nearest_ties_to_even', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the NearestTiesToEven rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_rne', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_round_nearest_ties_to_away', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the NearestTiesToAway rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_rna', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -83,7 +83,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the TowardPositive rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_round_toward_positive', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +92,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the TowardPositive rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_rtp', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +101,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the TowardNegative rounding mode.
 | 
			
		||||
     
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_round_toward_negative', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -110,7 +110,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the TowardNegative rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_rtn', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -119,7 +119,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the TowardZero rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_round_toward_zero', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -128,7 +128,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of RoundingMode sort which represents the TowardZero rounding mode.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_rtz', AST, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -137,9 +137,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param ebits number of exponent bits.
 | 
			
		||||
        \param sbits number of significand bits.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param ebits number of exponent bits
 | 
			
		||||
        \param sbits number of significand bits
 | 
			
		||||
 | 
			
		||||
        \remark ebits must be larger than 1 and sbits must be larger than 2.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -150,7 +150,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the half-precision (16-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_half', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +159,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the half-precision (16-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_16', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +177,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the single-precision (32-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_32', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -186,7 +186,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the double-precision (64-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_double', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -195,7 +195,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the double-precision (64-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_64', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -204,11 +204,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the quadruple-precision (128-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param ebits number of exponent bits
 | 
			
		||||
        \param sbits number of significand bits
 | 
			
		||||
 | 
			
		||||
        \remark ebits must be larger than 1 and sbits must be larger than 2.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_quadruple', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -217,11 +213,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create the quadruple-precision (128-bit) FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param ebits number of exponent bits
 | 
			
		||||
        \param sbits number of significand bits
 | 
			
		||||
 | 
			
		||||
        \remark ebits must be larger than 1 and sbits must be larger than 2.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_sort_128', SORT, (_in(CONTEXT),))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -230,7 +222,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a floating-point NaN of sort s.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param s target sort 
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_nan', AST, (_in(CONTEXT),_in(SORT)))
 | 
			
		||||
| 
						 | 
				
			
			@ -240,7 +232,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a floating-point infinity of sort s.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param s target sort 
 | 
			
		||||
        \param negative indicates whether the result should be negative
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -253,7 +245,7 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a floating-point zero of sort s.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param s target sort
 | 
			
		||||
        \param negative indicates whether the result should be negative
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -272,10 +264,10 @@ extern "C" {
 | 
			
		|||
        of the resulting expression is automatically determined from the bit-vector sizes
 | 
			
		||||
        of the arguments.
 | 
			
		||||
 | 
			
		||||
        \params c logical context.
 | 
			
		||||
        \params sgn sign         
 | 
			
		||||
        \params exp exponent
 | 
			
		||||
        \params sig significand
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param sgn sign         
 | 
			
		||||
        \param exp exponent
 | 
			
		||||
        \param sig significand
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_fp', AST, (_in(CONTEXT), _in(AST), _in(AST), _in(AST)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -287,9 +279,9 @@ extern "C" {
 | 
			
		|||
        This function is used to create numerals that fit in a float value.
 | 
			
		||||
        It is slightly faster than #Z3_mk_numeral since it is not necessary to parse a string.
 | 
			
		||||
 | 
			
		||||
        \params c logical context.
 | 
			
		||||
        \params v value.
 | 
			
		||||
        \params ty sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param v value
 | 
			
		||||
        \param ty sort
 | 
			
		||||
 | 
			
		||||
        ty must be a FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -305,9 +297,9 @@ extern "C" {
 | 
			
		|||
       This function is used to create numerals that fit in a double value.
 | 
			
		||||
       It is slightly faster than #Z3_mk_numeral since it is not necessary to parse a string.
 | 
			
		||||
 | 
			
		||||
       \params c logical context.
 | 
			
		||||
       \params v value.
 | 
			
		||||
       \params ty sort.
 | 
			
		||||
       \param c logical context
 | 
			
		||||
       \param v value
 | 
			
		||||
       \param ty sort
 | 
			
		||||
 | 
			
		||||
       ty must be a FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -320,8 +312,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of FloatingPoint sort from a signed integer.
 | 
			
		||||
 | 
			
		||||
        \params c logical context.
 | 
			
		||||
        \params v value.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param v value
 | 
			
		||||
        \param ty result sort
 | 
			
		||||
 | 
			
		||||
        ty must be a FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -334,10 +327,11 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of FloatingPoint sort from a sign bit and two integers.
 | 
			
		||||
 | 
			
		||||
        \params c logical context.
 | 
			
		||||
        \params sgn sign bit (true == negative).
 | 
			
		||||
        \params sig significand.
 | 
			
		||||
        \params exp exponent.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param sgn sign bit (true == negative)
 | 
			
		||||
        \param sig significand
 | 
			
		||||
        \param exp exponent
 | 
			
		||||
        \param ty result sort
 | 
			
		||||
 | 
			
		||||
        ty must be a FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -350,10 +344,11 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Create a numeral of FloatingPoint sort from a sign bit and two 64-bit integers.
 | 
			
		||||
 | 
			
		||||
        \params c logical context.
 | 
			
		||||
        \params sgn sign bit (true == negative).
 | 
			
		||||
        \params sig significand.
 | 
			
		||||
        \params exp exponent.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param sgn sign bit (true == negative)
 | 
			
		||||
        \param sig significand
 | 
			
		||||
        \param exp exponent
 | 
			
		||||
        \param ty result sort
 | 
			
		||||
 | 
			
		||||
        ty must be a FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -366,8 +361,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point absolute value
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_abs', AST, (_in(CONTEXT),_in(AST)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -376,8 +371,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point negation
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
     
 | 
			
		||||
        def_API('Z3_mk_fpa_neg', AST, (_in(CONTEXT),_in(AST)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -386,10 +381,10 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point addition
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        rm must be of RoundingMode sort, t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -400,10 +395,10 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point subtraction
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        rm must be of RoundingMode sort, t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -414,10 +409,10 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point multiplication
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        rm must be of RoundingMode sort, t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -428,10 +423,10 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point division
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        The nodes rm must be of RoundingMode sort t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -442,10 +437,11 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point fused multiply-add.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sor
 | 
			
		||||
        \param t3 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        The result is round((t1 * t2) + t3)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -458,9 +454,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point square root
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        rm must be of RoundingMode sort, t must have FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -471,9 +467,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point remainder
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -485,9 +481,9 @@ extern "C" {
 | 
			
		|||
        \brief Floating-point roundToIntegral. Rounds a floating-point number to 
 | 
			
		||||
        the closest integer, again represented as a floating-point number.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must be of FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -498,9 +494,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Minimum of floating-point numbers.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1, t2 must have the same FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -511,9 +507,9 @@ extern "C" {
 | 
			
		|||
        /**
 | 
			
		||||
        \brief Maximum of floating-point numbers.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1, t2 must have the same FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -524,9 +520,9 @@ extern "C" {
 | 
			
		|||
     /**
 | 
			
		||||
        \brief Floating-point less than or equal.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -537,9 +533,9 @@ extern "C" {
 | 
			
		|||
     /**
 | 
			
		||||
        \brief Floating-point less than.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -550,9 +546,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point greater than or equal.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -563,9 +559,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point greater than.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t1 and t2 must have the same FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -576,9 +572,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Floating-point equality.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t1 term of FloatingPoint sort.
 | 
			
		||||
        \param t2 term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t1 term of FloatingPoint sort
 | 
			
		||||
        \param t2 term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        Note that this is IEEE 754 equality (as opposed to SMT-LIB =).
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -591,8 +587,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Predicate indicating whether t is a normal floating-point number.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -603,8 +599,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Predicate indicating whether t is a subnormal floating-point number.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -615,8 +611,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Predicate indicating whether t is a floating-point number with zero value, i.e., +zero or -zero.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -627,8 +623,8 @@ extern "C" {
 | 
			
		|||
   /**
 | 
			
		||||
        \brief Predicate indicating whether t is a floating-point number representing +oo or -oo.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -639,8 +635,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Predicate indicating whether t is a NaN.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
     
 | 
			
		||||
| 
						 | 
				
			
			@ -651,8 +647,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Predicate indicating whether t is a negative floating-point number.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -663,8 +659,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Predicate indicating whether t is a positive floating-point number.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -678,9 +674,9 @@ extern "C" {
 | 
			
		|||
        Produces a term that represents the conversion of a bit-vector term bv to a 
 | 
			
		||||
        floating-point term of sort s.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param bv a bit-vector term.
 | 
			
		||||
        \param s floating-point sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param bv a bit-vector term
 | 
			
		||||
        \param s floating-point sort
 | 
			
		||||
 | 
			
		||||
        s must be a FloatingPoint sort, t must be of bit-vector sort, and the bit-vector 
 | 
			
		||||
        size of bv must be equal to ebits+sbits of s. The format of the bit-vector is 
 | 
			
		||||
| 
						 | 
				
			
			@ -697,10 +693,10 @@ extern "C" {
 | 
			
		|||
        floating-point term of sort s. If necessary, the result will be rounded according
 | 
			
		||||
        to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param s floating-point sort.
 | 
			
		||||
        \param c logical context    
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
        \param s floating-point sort
 | 
			
		||||
 | 
			
		||||
        s must be a FloatingPoint sort, rm must be of RoundingMode sort, t must be of floating-point sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -715,10 +711,10 @@ extern "C" {
 | 
			
		|||
        floating-point term of sort s. If necessary, the result will be rounded according
 | 
			
		||||
        to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of Real sort.
 | 
			
		||||
        \param s floating-point sort.
 | 
			
		||||
        \param c logical context    
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of Real sort
 | 
			
		||||
        \param s floating-point sort
 | 
			
		||||
 | 
			
		||||
        s must be a FloatingPoint sort, rm must be of RoundingMode sort, t must be of real sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -734,10 +730,10 @@ extern "C" {
 | 
			
		|||
        2's complement format. If necessary, the result will be rounded according
 | 
			
		||||
        to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of bit-vector sort.
 | 
			
		||||
        \param s floating-point sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of bit-vector sort
 | 
			
		||||
        \param s floating-point sort
 | 
			
		||||
 | 
			
		||||
        s must be a FloatingPoint sort, rm must be of RoundingMode sort, t must be of bit-vector sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -753,10 +749,10 @@ extern "C" {
 | 
			
		|||
        2's complement format. If necessary, the result will be rounded according
 | 
			
		||||
        to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of bit-vector sort.
 | 
			
		||||
        \param s floating-point sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of bit-vector sort
 | 
			
		||||
        \param s floating-point sort
 | 
			
		||||
 | 
			
		||||
        s must be a FloatingPoint sort, rm must be of RoundingMode sort, t must be of bit-vector sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -769,12 +765,12 @@ extern "C" {
 | 
			
		|||
 | 
			
		||||
        Produces a term that represents the conversion of the floating-poiunt term t into a
 | 
			
		||||
        bit-vector term of size sz in unsigned 2's complement format. If necessary, the result 
 | 
			
		||||
	will be rounded according to rounding mode rm.
 | 
			
		||||
		will be rounded according to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param sz size of the resulting bit-vector.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
        \param sz size of the resulting bit-vector
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_to_ubv', AST, (_in(CONTEXT),_in(AST),_in(AST),_in(UINT)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -785,12 +781,12 @@ extern "C" {
 | 
			
		|||
 | 
			
		||||
        Produces a term that represents the conversion of the floating-poiunt term t into a
 | 
			
		||||
        bit-vector term of size sz in signed 2's complement format. If necessary, the result 
 | 
			
		||||
	will be rounded according to rounding mode rm.
 | 
			
		||||
		will be rounded according to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param sz size of the resulting bit-vector.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
        \param sz size of the resulting bit-vector
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_to_sbv', AST, (_in(CONTEXT),_in(AST),_in(AST),_in(UINT)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -803,8 +799,8 @@ extern "C" {
 | 
			
		|||
        real number. Note that this type of conversion will often result in non-linear 
 | 
			
		||||
        constraints over real terms.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context        
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_mk_fpa_to_real', AST, (_in(CONTEXT),_in(AST)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -812,14 +808,15 @@ extern "C" {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
        @name Z3-specific extensions
 | 
			
		||||
        @name Z3-specific floating-point extensions
 | 
			
		||||
    */
 | 
			
		||||
    /*@{*/
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
        \brief Retrieves the number of bits reserved for the exponent in a FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param s FloatingPoint sort.
 | 
			
		||||
		\param c logical context
 | 
			
		||||
        \param s FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_fpa_get_ebits', UINT, (_in(CONTEXT),_in(SORT)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -828,31 +825,35 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Retrieves the number of bits reserved for the significand in a FloatingPoint sort.
 | 
			
		||||
 | 
			
		||||
        \param s FloatingPoint sort.
 | 
			
		||||
		\param c logical context
 | 
			
		||||
        \param s FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_fpa_get_sbits', UINT, (_in(CONTEXT),_in(SORT)))
 | 
			
		||||
    */
 | 
			
		||||
    unsigned Z3_API Z3_fpa_get_sbits(__in Z3_context c, __in Z3_sort s);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
        \brief Retrieves the sign of a floating-point literal
 | 
			
		||||
        \brief Retrieves the sign of a floating-point literal.
 | 
			
		||||
 | 
			
		||||
		\param c logical context
 | 
			
		||||
        \param t a floating-point numeral
 | 
			
		||||
		\param sgn sign
 | 
			
		||||
 | 
			
		||||
        Remarks: sets \c sgn to 0 if the literal is NaN or positive and to 1 otherwise.
 | 
			
		||||
 | 
			
		||||
        \param t a floating-point numeral.
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_fpa_get_numeral_sign', BOOL, (_in(CONTEXT), _in(AST), _out(INT)))
 | 
			
		||||
    */
 | 
			
		||||
    Z3_bool Z3_API Z3_fpa_get_numeral_sign(__in Z3_context c, __in Z3_ast t, __out int * sgn);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
        \brief Return the significand value of a floating-point numeral as a string
 | 
			
		||||
        \brief Return the significand value of a floating-point numeral as a string.
 | 
			
		||||
 | 
			
		||||
		\param c logical context
 | 
			
		||||
        \param t a floating-point numeral
 | 
			
		||||
 | 
			
		||||
        Remarks: The significand s is always 0 < s < 2.0; the resulting string is long
 | 
			
		||||
        enough to represent the real significand precisely.
 | 
			
		||||
 | 
			
		||||
        \param t a floating-point numeral.
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_fpa_get_numeral_significand_string', STRING, (_in(CONTEXT), _in(AST)))
 | 
			
		||||
    */
 | 
			
		||||
    Z3_string Z3_API Z3_fpa_get_numeral_significand_string(__in Z3_context c, __in Z3_ast t);
 | 
			
		||||
| 
						 | 
				
			
			@ -860,7 +861,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Return the exponent value of a floating-point numeral as a string
 | 
			
		||||
 | 
			
		||||
        \param t a floating-point numeral.
 | 
			
		||||
		\param c logical context
 | 
			
		||||
        \param t a floating-point numeral
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_fpa_get_numeral_exponent_string', STRING, (_in(CONTEXT), _in(AST)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -869,7 +871,9 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Return the exponent value of a floating-point numeral as a signed 64-bit integer
 | 
			
		||||
 | 
			
		||||
        \param t a floating-point numeral.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t a floating-point numeral
 | 
			
		||||
		\param n exponent
 | 
			
		||||
 | 
			
		||||
        def_API('Z3_fpa_get_numeral_exponent_int64', BOOL, (_in(CONTEXT), _in(AST), _out(INT64)))
 | 
			
		||||
    */
 | 
			
		||||
| 
						 | 
				
			
			@ -878,8 +882,8 @@ extern "C" {
 | 
			
		|||
    /**
 | 
			
		||||
        \brief Conversion of a floating-point term into a bit-vector term in IEEE 754-2008 format.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.
 | 
			
		||||
        \param t term of FloatingPoint sort.
 | 
			
		||||
        \param c logical context
 | 
			
		||||
        \param t term of FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        t must have FloatingPoint sort. The size of the resulting bit-vector is automatically 
 | 
			
		||||
        determined. 
 | 
			
		||||
| 
						 | 
				
			
			@ -899,11 +903,11 @@ extern "C" {
 | 
			
		|||
        floating-point term of sort s. If necessary, the result will be rounded
 | 
			
		||||
        according to rounding mode rm.
 | 
			
		||||
 | 
			
		||||
        \param c logical context.        
 | 
			
		||||
        \param rm term of RoundingMode sort.
 | 
			
		||||
        \param sig significand term of Real sort.
 | 
			
		||||
        \param exp exponent term of Int sort.
 | 
			
		||||
        \param s FloatingPoint sort.
 | 
			
		||||
        \param c logical context     
 | 
			
		||||
        \param rm term of RoundingMode sort
 | 
			
		||||
        \param sig significand term of Real sort
 | 
			
		||||
        \param exp exponent term of Int sort
 | 
			
		||||
        \param s FloatingPoint sort
 | 
			
		||||
 | 
			
		||||
        s must be a FloatingPoint sort, rm must be of RoundingMode sort, t must be of real sort.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue