Z3
 
Loading...
Searching...
No Matches
Params.cs
Go to the documentation of this file.
1/*++
2Copyright (c) 2012 Microsoft Corporation
3
4Module Name:
5
6 Parameter.cs
7
8Abstract:
9
10 Z3 Managed API: Parameters
11
12Author:
13
14 Christoph Wintersteiger (cwinter) 2012-03-20
15
16Notes:
17
18--*/
19
20using System.Diagnostics;
21using System;
22
23namespace Microsoft.Z3
24{
28 public class Params : Z3Object
29 {
33 public Params Add(Symbol name, bool value)
34 {
35 Debug.Assert(name != null);
36
37 Native.Z3_params_set_bool(Context.nCtx, NativeObject, name.NativeObject, (byte)(value ? 1 : 0));
38 return this;
39 }
40
44 public Params Add(Symbol name, uint value)
45 {
46 Debug.Assert(name != null);
47
48 Native.Z3_params_set_uint(Context.nCtx, NativeObject, name.NativeObject, value);
49 return this;
50 }
51
55 public Params Add(Symbol name, double value)
56 {
57 Debug.Assert(name != null);
58
59 Native.Z3_params_set_double(Context.nCtx, NativeObject, name.NativeObject, value);
60 return this;
61 }
62
66 public Params Add(Symbol name, string value)
67 {
68 Debug.Assert(value != null);
69
70 Native.Z3_params_set_symbol(Context.nCtx, NativeObject, name.NativeObject, Context.MkSymbol(value).NativeObject);
71 return this;
72 }
73
77 public Params Add(Symbol name, Symbol value)
78 {
79 Debug.Assert(name != null);
80 Debug.Assert(value != null);
81
82 Native.Z3_params_set_symbol(Context.nCtx, NativeObject, name.NativeObject, value.NativeObject);
83 return this;
84 }
85
86
90 public Params Add(string name, bool value)
91 {
92 Native.Z3_params_set_bool(Context.nCtx, NativeObject, Context.MkSymbol(name).NativeObject, (byte)(value ? 1 : 0));
93 return this;
94 }
95
99 public Params Add(string name, uint value)
100 {
101 Native.Z3_params_set_uint(Context.nCtx, NativeObject, Context.MkSymbol(name).NativeObject, value);
102 return this;
103 }
104
108 public Params Add(string name, double value)
109 {
110 Native.Z3_params_set_double(Context.nCtx, NativeObject, Context.MkSymbol(name).NativeObject, value);
111 return this;
112 }
113
117 public Params Add(string name, Symbol value)
118 {
119 Debug.Assert(value != null);
120
121 Native.Z3_params_set_symbol(Context.nCtx, NativeObject, Context.MkSymbol(name).NativeObject, value.NativeObject);
122 return this;
123 }
124
128 public Params Add(string name, string value)
129 {
130 Debug.Assert(name != null);
131 Debug.Assert(value != null);
132
133 Native.Z3_params_set_symbol(Context.nCtx, NativeObject, Context.MkSymbol(name).NativeObject, Context.MkSymbol(value).NativeObject);
134 return this;
135 }
136
140 public override string ToString()
141 {
142 return Native.Z3_params_to_string(Context.nCtx, NativeObject);
143 }
144
145 #region Internal
146 internal Params(Context ctx)
147 : base(ctx, Native.Z3_mk_params(ctx.nCtx))
148 {
149 Debug.Assert(ctx != null);
150 }
151
152 internal override void IncRef(IntPtr o)
153 {
154 Native.Z3_params_inc_ref(Context.nCtx, o);
155 }
156
157 internal override void DecRef(IntPtr o)
158 {
159 lock (Context)
160 {
161 if (Context.nCtx != IntPtr.Zero)
162 Native.Z3_params_dec_ref(Context.nCtx, o);
163 }
164 }
165 #endregion
166 }
167}
The main interaction with Z3 happens via the Context.
Definition Context.cs:34
IntSymbol MkSymbol(int i)
Creates a new symbol using an integer.
Definition Context.cs:111
A Params objects represents a configuration in the form of Symbol/value pairs.
Definition Params.cs:29
Params Add(string name, uint value)
Adds a parameter setting.
Definition Params.cs:99
Params Add(string name, string value)
Adds a parameter setting.
Definition Params.cs:128
Params Add(string name, double value)
Adds a parameter setting.
Definition Params.cs:108
Params Add(string name, Symbol value)
Adds a parameter setting.
Definition Params.cs:117
Params Add(Symbol name, uint value)
Adds a parameter setting.
Definition Params.cs:44
override string ToString()
A string representation of the parameter set.
Definition Params.cs:140
Params Add(Symbol name, bool value)
Adds a parameter setting.
Definition Params.cs:33
Params Add(string name, bool value)
Adds a parameter setting.
Definition Params.cs:90
Params Add(Symbol name, double value)
Adds a parameter setting.
Definition Params.cs:55
Params Add(Symbol name, string value)
Adds a parameter setting.
Definition Params.cs:66
Params Add(Symbol name, Symbol value)
Adds a parameter setting.
Definition Params.cs:77
Symbols are used to name several term and type constructors.
Definition Symbol.cs:30
Internal base class for interfacing with native Z3 objects. Should not be used externally.
Definition Z3Object.cs:33
Context Context
Access Context object.
Definition Z3Object.cs:111
Z3_params Z3_API Z3_mk_params(Z3_context c)
Create a Z3 (empty) parameter set. Starting at Z3 4.0, parameter sets are used to configure many comp...