mirror of
https://github.com/Z3Prover/z3
synced 2025-04-25 18:15:32 +00:00
- A proper way to refer to the function in the same class is "#funcName" - There is no point in "@param p" declaration if no description follows it.
109 lines
3.1 KiB
Java
109 lines
3.1 KiB
Java
/**
|
|
Copyright (c) 2012-2014 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
Global.java
|
|
|
|
Abstract:
|
|
|
|
Author:
|
|
|
|
@author Christoph Wintersteiger (cwinter) 2012-03-15
|
|
|
|
Notes:
|
|
|
|
**/
|
|
|
|
package com.microsoft.z3;
|
|
|
|
/**
|
|
* Global functions for Z3.
|
|
* Remarks:
|
|
* This (static) class contains functions that effect the behaviour of Z3
|
|
* globally across contexts, etc.
|
|
*
|
|
**/
|
|
public final class Global
|
|
{
|
|
/**
|
|
* Set a global (or module) parameter, which is shared by all Z3 contexts.
|
|
* Remarks:
|
|
* When a Z3 module is initialized it will use the value of these parameters
|
|
* when Z3_params objects are not provided.
|
|
* The name of parameter can be composed of characters [a-z][A-Z], digits [0-9], '-' and '_'.
|
|
* The character '.' is a delimiter (more later).
|
|
* The parameter names are case-insensitive. The character '-' should be viewed as an "alias" for '_'.
|
|
* Thus, the following parameter names are considered equivalent: "pp.decimal-precision" and "PP.DECIMAL_PRECISION".
|
|
* This function can be used to set parameters for a specific Z3 module.
|
|
* This can be done by using <module-name>.<parameter-name>.
|
|
* For example:
|
|
* Z3_global_param_set('pp.decimal', 'true')
|
|
* will set the parameter "decimal" in the module "pp" to true.
|
|
*
|
|
**/
|
|
public static void setParameter(String id, String value)
|
|
{
|
|
Native.globalParamSet(id, value);
|
|
}
|
|
|
|
/**
|
|
* Get a global (or module) parameter.
|
|
* Remarks:
|
|
* This function cannot be invoked simultaneously from different threads without synchronization.
|
|
* The result string stored in param_value is stored in a shared location.
|
|
* @return null if the parameter {@code id} does not exist.
|
|
**/
|
|
public static String getParameter(String id)
|
|
{
|
|
Native.StringPtr res = new Native.StringPtr();
|
|
if (!Native.globalParamGet(id, res)) {
|
|
return null;
|
|
} else {
|
|
return res.value;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Restore the value of all global (and module) parameters.
|
|
* Remarks:
|
|
* This command will not affect already created objects (such as tactics and solvers)
|
|
* @see #setParameter
|
|
**/
|
|
public static void resetParameters()
|
|
{
|
|
Native.globalParamResetAll();
|
|
}
|
|
|
|
/**
|
|
* Enable/disable printing of warning messages to the console.
|
|
* Remarks: Note
|
|
* that this function is static and effects the behaviour of all contexts
|
|
* globally.
|
|
**/
|
|
public static void ToggleWarningMessages(boolean enabled)
|
|
|
|
{
|
|
Native.toggleWarningMessages((enabled));
|
|
}
|
|
|
|
/**
|
|
* Enable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
|
|
*
|
|
* Remarks: It is a NOOP otherwise.
|
|
**/
|
|
public static void enableTrace(String tag)
|
|
{
|
|
Native.enableTrace(tag);
|
|
}
|
|
|
|
/**
|
|
* Disable tracing messages tagged as `tag' when Z3 is compiled in debug mode.
|
|
*
|
|
* Remarks: It is a NOOP otherwise.
|
|
**/
|
|
public static void disableTrace(String tag)
|
|
{
|
|
Native.disableTrace(tag);
|
|
}
|
|
}
|