diff --git a/docs/C++/html/BnbDataStructures_8hpp_source.html b/docs/C++/html/BnbDataStructures_8hpp_source.html index 8b46cd70..673c0a30 100644 --- a/docs/C++/html/BnbDataStructures_8hpp_source.html +++ b/docs/C++/html/BnbDataStructures_8hpp_source.html @@ -355,70 +355,61 @@
270 return x_box;
271 }
272
-
273 bool is_priority() const
-
274 {
-
275 return priority;
-
276 }
+
273 private:
+
274 // members
+
275 Box x_box;
+
276 };
277
-
278 void set_priority(bool priority)
-
279 {
-
280 this->priority = priority;
-
281 }
-
282
-
283 private:
-
284 // members
-
285 Box x_box;
-
286 bool priority = false;
-
287 };
-
288
-
289 template <typename T, typename Compare=std::less<T>>
-
290 class PriorityQueuePrunable final : public std::priority_queue<T, std::vector<T>, Compare>
-
291 {
-
292 public:
-
293 // constructor
-
294 explicit PriorityQueuePrunable(const Compare& comp = Compare()) : std::priority_queue<
-
295 T, std::vector<T>, Compare>(comp)
-
296 {
-
297 }
-
298
-
299 // prune queue
-
300 void prune(const T& t)
-
301 {
-
302 auto it_prune = std::find_if(this->c.begin(), this->c.end(), [&](const T& item)
-
303 {
-
304 return this->comp(item, t);
-
305 });
-
306 if (it_prune != this->c.end())
-
307 {
-
308 this->c.erase(it_prune, this->c.end());
-
309 }
-
310 }
-
311
-
312 // bottom
-
313 const T& bottom() const
-
314 {
-
315 return this->c.back();
-
316 }
-
317
-
318 // pop top
-
319 T pop_top()
-
320 {
-
321 T top = std::move(this->c.front());
-
322 this->pop();
-
323 return top;
-
324 }
+
278 template <typename T, typename Compare=std::less<T>>
+
279 class PriorityQueuePrunable final : public std::priority_queue<T, std::vector<T>, Compare>
+
280 {
+
281 public:
+
282 // constructor
+
283 explicit PriorityQueuePrunable(const Compare& comp = Compare()) : std::priority_queue<
+
284 T, std::vector<T>, Compare>(comp)
+
285 {
+
286 }
+
287
+
288 // prune queue
+
289 void prune(const T& t)
+
290 {
+
291 auto it_prune = std::remove_if(this->c.begin(), this->c.end(), [&](const T& item)
+
292 {
+
293 return this->comp(item, t);
+
294 });
+
295 if (it_prune != this->c.end())
+
296 {
+
297 this->c.erase(it_prune, this->c.end());
+
298 std::make_heap(this->c.begin(), this->c.end(), this->comp);
+
299 }
+
300 }
+
301
+
302 // bottom
+
303 const T& bottom() const
+
304 {
+
305 return this->c.back();
+
306 }
+
307
+
308 // pop top
+
309 T pop_top()
+
310 {
+
311 T top = std::move(this->c.front());
+
312 this->pop();
+
313 return top;
+
314 }
+
315
+
316 // clear
+
317 void clear()
+
318 {
+
319 while (!this->empty())
+
320 this->pop();
+
321 }
+
322
+
323 };
+
324} // namespace ZonoOpt::detail
325
-
326 // clear
-
327 void clear()
-
328 {
-
329 while (!this->empty())
-
330 this->pop();
-
331 }
-
332 };
-
333} // namespace ZonoOpt::detail
-
334
-
335
-
336#endif
+
326
+
327#endif
ADMM.hpp
Convex and mixed-integer ADMM implementations used within ZonoOpt.
SolverDataStructures.hpp
Optimization settings and solution data structures for ZonoOpt library.
zono_float
#define zono_float
Defines the floating-point type used in ZonoOpt.
Definition ZonoOpt.hpp:45
diff --git a/docs/C++/html/BranchAndBound_8hpp_source.html b/docs/C++/html/BranchAndBound_8hpp_source.html index be7b5895..dc12a59f 100644 --- a/docs/C++/html/BranchAndBound_8hpp_source.html +++ b/docs/C++/html/BranchAndBound_8hpp_source.html @@ -156,128 +156,130 @@
71 bool operator()(const std::unique_ptr<Node, NodeDeleter>& n1,
72 const std::unique_ptr<Node, NodeDeleter>& n2) const
73 {
-
74 if (n2->is_priority() && !n1->is_priority())
-
75 return true;
-
76 else if (!n2->is_priority() && n1->is_priority())
-
77 return false;
-
78 else
-
79 return n1->solution.J > n2->solution.J;
-
80 }
-
81 };
-
82
-
83 struct JThreadCompare
-
84 {
-
85 bool operator()(const std::pair<int, zono_float>& v1,
-
86 const std::pair<int, zono_float>& v2) const
-
87 {
-
88 if (v1.second != v2.second) return v1.second < v2.second;
-
89 return v1.first < v2.first;
-
90 }
-
91 };
-
92
-
93 template <typename T, typename Comp=std::less<T>>
-
94 struct ThreadGuard
-
95 {
-
96 ThreadSafeSet<T, Comp>& thread_tags;
-
97 T tag;
-
98 bool specified = false;
-
99
-
100 explicit ThreadGuard(ThreadSafeSet<T, Comp>& thread_tags): thread_tags(thread_tags)
-
101 {
-
102 }
-
103
-
104 void specify_tag(const T& tag)
-
105 {
-
106 if (!specified)
-
107 {
-
108 this->tag = tag;
-
109 this->specified = true;
-
110 this->thread_tags.add(tag);
-
111 }
-
112 }
-
113
-
114 ~ThreadGuard()
-
115 {
-
116 if (specified)
-
117 this->thread_tags.remove(tag);
-
118 }
-
119 };
-
120
-
121 const MI_data data;
-
122 std::pmr::synchronized_pool_resource pool;
-
123 NodeCompare comp;
-
124
-
125 PriorityQueuePrunable<std::unique_ptr<Node, NodeDeleter>, NodeCompare> node_queue; // priority queue for nodes
-
126 mutable std::mutex pq_mtx;
-
127 mutable std::mutex incumbent_mtx; // guards atomic check-and-update of incumbent (J_max, z, x, u, etc.)
-
128 std::condition_variable pq_cv_bnb, pq_cv_admm_fp;
-
129 // condition variables for branch-and-bound and ADMM-FP threads
-
130
-
131 bool multi_sol = false;
-
132 std::shared_ptr<ADMM_data> bnb_data, admm_fp_data; // data for branch-and-bound threads / ADMM-FP threads
-
133
-
134 std::atomic<bool> converged = false;
-
135 std::atomic<bool> done = false;
-
136 std::atomic<bool> feasible = false; // feasible solution found
-
137 std::atomic<bool> admm_fp_incumbent = false; // incumbent is from ADMM FP
-
138 std::atomic<long int> qp_iter = 0; // number of QP iterations
-
139 std::atomic<int> iter = 0; // number of iterations
-
140 std::atomic<int> iter_admm_fp = 0; // number of feasibility pump iterations
-
141 std::atomic<zono_float> J_max = std::numeric_limits<zono_float>::infinity(); // upper bound
-
142 ThreadSafeAccess<Eigen::Vector<zono_float, -1>> z, x, u; // solution vector
-
143 std::atomic<zono_float> primal_residual = std::numeric_limits<zono_float>::infinity();
-
144 std::atomic<zono_float> dual_residual = std::numeric_limits<zono_float>::infinity();
-
145 ThreadSafeIncrementable<double> total_startup_time{0.0};
-
146 ThreadSafeIncrementable<double> total_run_time{0.0};
-
147 ThreadSafeSet<std::pair<int, zono_float>, JThreadCompare> J_threads; // threads for J values
-
148 ThreadSafeVector<OptSolution> solutions; // solutions found
-
149 std::uniform_int_distribution<int> uniform_dist{0, std::numeric_limits<int>::max()};
-
150 std::mt19937 rng{0};
-
151
-
152 // warmstart variables
-
153 Eigen::Vector<zono_float, -1> xi_ws, u_ws;
-
154
-
155 // allocate nodes
-
156 std::unique_ptr<Node, NodeDeleter> make_node(const std::shared_ptr<ADMM_data>& admm_data);
-
157
-
158 std::unique_ptr<Node, NodeDeleter> clone_node(const std::unique_ptr<Node, NodeDeleter>& other);
+
74 return n1->solution.J > n2->solution.J; // min-heap on J
+
75 }
+
76 };
+
77
+
78 struct JThreadCompare
+
79 {
+
80 bool operator()(const std::pair<int, zono_float>& v1,
+
81 const std::pair<int, zono_float>& v2) const
+
82 {
+
83 if (v1.second != v2.second) return v1.second < v2.second;
+
84 return v1.first < v2.first;
+
85 }
+
86 };
+
87
+
88 template <typename T, typename Comp=std::less<T>>
+
89 struct ThreadGuard
+
90 {
+
91 ThreadSafeSet<T, Comp>& thread_tags;
+
92 T tag;
+
93 bool specified = false;
+
94
+
95 explicit ThreadGuard(ThreadSafeSet<T, Comp>& thread_tags): thread_tags(thread_tags)
+
96 {
+
97 }
+
98
+
99 void specify_tag(const T& tag)
+
100 {
+
101 if (!specified)
+
102 {
+
103 this->tag = tag;
+
104 this->specified = true;
+
105 this->thread_tags.add(tag);
+
106 }
+
107 }
+
108
+
109 ~ThreadGuard()
+
110 {
+
111 if (specified)
+
112 this->thread_tags.remove(tag);
+
113 }
+
114 };
+
115
+
116 const MI_data data;
+
117 std::pmr::synchronized_pool_resource pool;
+
118 NodeCompare comp;
+
119
+
120 PriorityQueuePrunable<std::unique_ptr<Node, NodeDeleter>, NodeCompare> node_queue; // priority queue for nodes
+
121 PriorityQueuePrunable<std::unique_ptr<Node, NodeDeleter>, NodeCompare> dive_queue; // dive queue for search mode 1
+
122 mutable std::mutex pq_mtx;
+
123 mutable std::mutex incumbent_mtx; // guards atomic check-and-update of incumbent (J_max, z, x, u, etc.)
+
124 std::condition_variable pq_cv_bnb, pq_cv_admm_fp;
+
125 // condition variables for branch-and-bound and ADMM-FP threads
+
126
+
127 bool multi_sol = false;
+
128 std::shared_ptr<ADMM_data> bnb_data, admm_fp_data; // data for branch-and-bound threads / ADMM-FP threads
+
129
+
130 std::atomic<bool> converged = false;
+
131 std::atomic<bool> done = false;
+
132 std::atomic<bool> feasible = false; // feasible solution found
+
133 std::atomic<bool> admm_fp_incumbent = false; // incumbent is from ADMM FP
+
134 std::atomic<long int> qp_iter = 0; // number of QP iterations
+
135 std::atomic<int> iter = 0; // number of iterations
+
136 std::atomic<int> iter_admm_fp = 0; // number of feasibility pump iterations
+
137 std::atomic<zono_float> J_max = std::numeric_limits<zono_float>::infinity(); // upper bound
+
138 ThreadSafeAccess<Eigen::Vector<zono_float, -1>> z, x, u; // solution vector
+
139 std::atomic<zono_float> primal_residual = std::numeric_limits<zono_float>::infinity();
+
140 std::atomic<zono_float> dual_residual = std::numeric_limits<zono_float>::infinity();
+
141 ThreadSafeIncrementable<double> total_startup_time{0.0};
+
142 ThreadSafeIncrementable<double> total_run_time{0.0};
+
143 ThreadSafeSet<std::pair<int, zono_float>, JThreadCompare> J_threads; // threads for J values
+
144 ThreadSafeVector<OptSolution> solutions; // solutions found
+
145 std::uniform_int_distribution<int> uniform_dist{0, std::numeric_limits<int>::max()};
+
146 std::mt19937 rng{0};
+
147
+
148 // warmstart variables
+
149 Eigen::Vector<zono_float, -1> xi_ws, u_ws;
+
150
+
151 // allocate nodes
+
152 std::unique_ptr<Node, NodeDeleter> make_node(const std::shared_ptr<ADMM_data>& admm_data);
+
153
+
154 std::unique_ptr<Node, NodeDeleter> clone_node(const std::unique_ptr<Node, NodeDeleter>& other);
+
155
+
156 // solver core
+
157 std::variant<OptSolution, std::pair<std::vector<OptSolution>, OptSolution>> solver_core(
+
158 int max_sols = std::numeric_limits<int>::max());
159
-
160 // solver core
-
161 std::variant<OptSolution, std::pair<std::vector<OptSolution>, OptSolution>> solver_core(
-
162 int max_sols = std::numeric_limits<int>::max());
-
163
-
164 // solve node and branch
-
165 void solve_and_branch(const std::unique_ptr<Node, NodeDeleter>& node);
-
166
-
167 void admm_fp_solve(const std::unique_ptr<ADMM_FP_solver>& node);
-
168
-
169 // check if integer feasible, xb is vector of relaxed binary variables
-
170 bool is_integer_feasible(const Eigen::Ref<const Eigen::Vector<zono_float, -1>> xb) const;
-
171
-
172 // most fractional branching
-
173 void branch_most_frac(const std::unique_ptr<Node, NodeDeleter>& node);
-
174
-
175 // loop for multithreading
-
176 void worker_loop();
-
177
-
178 void admm_fp_loop(std::unique_ptr<ADMM_FP_solver>&& node);
-
179
-
180 // push node to queue
-
181 void push_node(std::unique_ptr<Node, NodeDeleter>&& node);
-
182
-
183 // prune
-
184 void prune(zono_float J_prune);
-
185
-
186 // check if 2 solutions correspond to the same binaries
-
187 bool check_bin_equal(const OptSolution& sol1, const OptSolution& sol2) const;
-
188
-
189 // check whether integer variables are fully specified
-
190 bool is_box_integer(const Box& box) const;
-
191 };
-
192} // namespace ZonoOpt::detail
-
193
-
194
-
195#endif
+
160 // solve node and branch
+
161 void solve_and_branch(const std::unique_ptr<Node, NodeDeleter>& node);
+
162
+
163 void admm_fp_solve(const std::unique_ptr<ADMM_FP_solver>& node);
+
164
+
165 // check if integer feasible, xb is vector of relaxed binary variables
+
166 bool is_integer_feasible(const Eigen::Ref<const Eigen::Vector<zono_float, -1>> xb) const;
+
167
+
168 // most fractional branching
+
169 void branch_most_frac(const std::unique_ptr<Node, NodeDeleter>& node);
+
170
+
171 // loop for multithreading
+
172 void worker_loop();
+
173
+
174 void admm_fp_loop(std::unique_ptr<ADMM_FP_solver>&& node);
+
175
+
176 // push node to queue
+
177 void push_node(std::unique_ptr<Node, NodeDeleter>&& node);
+
178
+
179 // push node to dive queue (search mode 1)
+
180 void push_dive_node(std::unique_ptr<Node, NodeDeleter>&& node);
+
181
+
182 // prune
+
183 void prune(zono_float J_prune);
+
184
+
185 // check if 2 solutions correspond to the same binaries
+
186 bool check_bin_equal(const OptSolution& sol1, const OptSolution& sol2) const;
+
187
+
188 // check whether integer variables are fully specified
+
189 bool is_box_integer(const Box& box) const;
+
190
+
191 // get lower bound
+
192 zono_float get_lower_bound();
+
193 };
+
194} // namespace ZonoOpt::detail
+
195
+
196
+
197#endif
ADMM.hpp
Convex and mixed-integer ADMM implementations used within ZonoOpt.
BnbDataStructures.hpp
Data structures for mixed-integer optimization in ZonoOpt library.
SolverDataStructures.hpp
Optimization settings and solution data structures for ZonoOpt library.
diff --git a/docs/python/build/doctrees/environment.pickle b/docs/python/build/doctrees/environment.pickle index 2180761e..d6d1ea6a 100644 Binary files a/docs/python/build/doctrees/environment.pickle and b/docs/python/build/doctrees/environment.pickle differ diff --git a/docs/python/build/doctrees/index.doctree b/docs/python/build/doctrees/index.doctree index e9bca46d..e5dcdfa0 100644 Binary files a/docs/python/build/doctrees/index.doctree and b/docs/python/build/doctrees/index.doctree differ diff --git a/docs/python/build/doctrees/zonoopt.doctree b/docs/python/build/doctrees/zonoopt.doctree index caedf57a..96166bca 100644 Binary files a/docs/python/build/doctrees/zonoopt.doctree and b/docs/python/build/doctrees/zonoopt.doctree differ diff --git a/docs/python/build/html/searchindex.js b/docs/python/build/html/searchindex.js index e48a27fd..09f3110c 100644 --- a/docs/python/build/html/searchindex.js +++ b/docs/python/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles":{"A Note on Version Numbers":[[0,"a-note-on-version-numbers"]],"Building and Installing":[[0,"building-and-installing"]],"Contents:":[[0,null]],"Documentation":[[0,"documentation"]],"Examples":[[0,"examples"]],"References":[[0,"references"]],"See Also":[[0,"see-also"]],"ZonoOpt":[[0,"zonoopt"]],"ZonoOpt Features":[[0,"zonoopt-features"]],"ZonoOpt Module":[[1,null]],"Zonotopes, Constrained Zonotopes, and Hybrid Zonotopes":[[0,"zonotopes-constrained-zonotopes-and-hybrid-zonotopes"]],"zonoopt documentation":[[0,null]]},"docnames":["index","zonoopt"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst","zonoopt.rst"],"indexentries":{"__add__() (zonoopt.box method)":[[1,"zonoopt.Box.__add__",false]],"__add__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__add__",false]],"__add__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__add__",false]],"__add__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__add__",false]],"__and__() (zonoopt.box method)":[[1,"zonoopt.Box.__and__",false]],"__and__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__and__",false]],"__and__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__and__",false]],"__and__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__and__",false]],"__eq__() (zonoopt.box method)":[[1,"zonoopt.Box.__eq__",false]],"__eq__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__eq__",false]],"__eq__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__eq__",false]],"__ge__() (zonoopt.box method)":[[1,"zonoopt.Box.__ge__",false]],"__ge__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__ge__",false]],"__ge__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__ge__",false]],"__getitem__() (zonoopt.box method)":[[1,"zonoopt.Box.__getitem__",false]],"__iadd__() (zonoopt.box method)":[[1,"zonoopt.Box.__iadd__",false]],"__iadd__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__iadd__",false]],"__iadd__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__iadd__",false]],"__iadd__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__iadd__",false]],"__imatmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__imatmul__",false]],"__imul__() (zonoopt.box method)":[[1,"zonoopt.Box.__imul__",false]],"__imul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__imul__",false]],"__imul__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__imul__",false]],"__imul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__imul__",false]],"__isub__() (zonoopt.box method)":[[1,"zonoopt.Box.__isub__",false]],"__isub__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__isub__",false]],"__isub__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__isub__",false]],"__isub__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__isub__",false]],"__le__() (zonoopt.box method)":[[1,"zonoopt.Box.__le__",false]],"__le__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__le__",false]],"__le__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__le__",false]],"__matmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__matmul__",false]],"__mul__() (zonoopt.box method)":[[1,"zonoopt.Box.__mul__",false]],"__mul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__mul__",false]],"__mul__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__mul__",false]],"__mul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__mul__",false]],"__neg__() (zonoopt.box method)":[[1,"zonoopt.Box.__neg__",false]],"__neg__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__neg__",false]],"__neg__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__neg__",false]],"__neg__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__neg__",false]],"__or__() (zonoopt.box method)":[[1,"zonoopt.Box.__or__",false]],"__or__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__or__",false]],"__or__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__or__",false]],"__or__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__or__",false]],"__pow__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__pow__",false]],"__radd__() (zonoopt.box method)":[[1,"zonoopt.Box.__radd__",false]],"__radd__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__radd__",false]],"__radd__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__radd__",false]],"__radd__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__radd__",false]],"__rmatmul__() (zonoopt.box method)":[[1,"zonoopt.Box.__rmatmul__",false]],"__rmatmul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__rmatmul__",false]],"__rmatmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__rmatmul__",false]],"__rmul__() (zonoopt.box method)":[[1,"zonoopt.Box.__rmul__",false]],"__rmul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__rmul__",false]],"__rmul__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__rmul__",false]],"__rmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__rmul__",false]],"__rsub__() (zonoopt.box method)":[[1,"zonoopt.Box.__rsub__",false]],"__rsub__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__rsub__",false]],"__rsub__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__rsub__",false]],"__setitem__() (zonoopt.box method)":[[1,"zonoopt.Box.__setitem__",false]],"__sub__() (zonoopt.box method)":[[1,"zonoopt.Box.__sub__",false]],"__sub__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__sub__",false]],"__sub__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__sub__",false]],"__sub__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__sub__",false]],"__truediv__() (zonoopt.box method)":[[1,"zonoopt.Box.__truediv__",false]],"__truediv__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__truediv__",false]],"__truediv__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__truediv__",false]],"abs() (zonoopt.interval method)":[[1,"zonoopt.Interval.abs",false]],"affine_inclusion() (in module zonoopt)":[[1,"zonoopt.affine_inclusion",false]],"affine_map() (in module zonoopt)":[[1,"zonoopt.affine_map",false]],"arccos() (zonoopt.interval method)":[[1,"zonoopt.Interval.arccos",false]],"arccosh() (zonoopt.interval method)":[[1,"zonoopt.Interval.arccosh",false]],"arcsin() (zonoopt.interval method)":[[1,"zonoopt.Interval.arcsin",false]],"arcsinh() (zonoopt.interval method)":[[1,"zonoopt.Interval.arcsinh",false]],"arctan() (zonoopt.interval method)":[[1,"zonoopt.Interval.arctan",false]],"arctanh() (zonoopt.interval method)":[[1,"zonoopt.Interval.arctanh",false]],"bounding_box() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.bounding_box",false]],"box (class in zonoopt)":[[1,"zonoopt.Box",false]],"cartesian_product() (in module zonoopt)":[[1,"zonoopt.cartesian_product",false]],"center() (zonoopt.box method)":[[1,"zonoopt.Box.center",false]],"center() (zonoopt.interval method)":[[1,"zonoopt.Interval.center",false]],"center() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.center",false]],"cols() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.cols",false]],"complement() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.complement",false]],"constrain() (in module zonoopt)":[[1,"zonoopt.constrain",false]],"constraint_reduction() (zonoopt.conzono method)":[[1,"zonoopt.ConZono.constraint_reduction",false]],"contains() (zonoopt.box method)":[[1,"zonoopt.Box.contains",false]],"contains() (zonoopt.interval method)":[[1,"zonoopt.Interval.contains",false]],"contains() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.contains",false]],"contains_point() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.contains_point",false]],"contains_set() (zonoopt.box method)":[[1,"zonoopt.Box.contains_set",false]],"contains_set() (zonoopt.interval method)":[[1,"zonoopt.Interval.contains_set",false]],"contains_set() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.contains_set",false]],"contract() (zonoopt.box method)":[[1,"zonoopt.Box.contract",false]],"contractor_iter (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.contractor_iter",false]],"contractor_tree_search_depth (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.contractor_tree_search_depth",false]],"converged (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.converged",false]],"convert_form() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.convert_form",false]],"convex_hull() (in module zonoopt)":[[1,"zonoopt.convex_hull",false]],"convex_relaxation() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.convex_relaxation",false]],"conzono (class in zonoopt)":[[1,"zonoopt.ConZono",false]],"copy() (zonoopt.box method)":[[1,"zonoopt.Box.copy",false]],"copy() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.copy",false]],"copy() (zonoopt.interval method)":[[1,"zonoopt.Interval.copy",false]],"copy() (zonoopt.optsettings method)":[[1,"zonoopt.OptSettings.copy",false]],"copy() (zonoopt.optsolution method)":[[1,"zonoopt.OptSolution.copy",false]],"copy() (zonoopt.warmstartparams method)":[[1,"zonoopt.WarmStartParams.copy",false]],"cos() (zonoopt.interval method)":[[1,"zonoopt.Interval.cos",false]],"cosh() (zonoopt.interval method)":[[1,"zonoopt.Interval.cosh",false]],"cycle_detection_buffer_size (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.cycle_detection_buffer_size",false]],"diam() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.diam",false]],"dot() (zonoopt.box method)":[[1,"zonoopt.Box.dot",false]],"dual_residual (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.dual_residual",false]],"emptyset (class in zonoopt)":[[1,"zonoopt.EmptySet",false]],"enable_perturb_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.enable_perturb_admm_fp",false]],"enable_restart_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.enable_restart_admm_fp",false]],"enable_rng_seed (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.enable_rng_seed",false]],"eps_a (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_a",false]],"eps_dual (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_dual",false]],"eps_dual_search (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_dual_search",false]],"eps_perturb (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_perturb",false]],"eps_prim (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_prim",false]],"eps_prim_search (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_prim_search",false]],"eps_r (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_r",false]],"exp() (zonoopt.interval method)":[[1,"zonoopt.Interval.exp",false]],"from_array() (zonoopt.box static method)":[[1,"zonoopt.Box.from_array",false]],"from_array() (zonoopt.intervalmatrix static method)":[[1,"zonoopt.IntervalMatrix.from_array",false]],"from_json() (in module zonoopt)":[[1,"zonoopt.from_json",false]],"from_triplets() (zonoopt.intervalmatrix static method)":[[1,"zonoopt.IntervalMatrix.from_triplets",false]],"get_a() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_A",false]],"get_ab() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Ab",false]],"get_ac() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Ac",false]],"get_b() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_b",false]],"get_c() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_c",false]],"get_center() (zonoopt.zono method)":[[1,"zonoopt.Zono.get_center",false]],"get_g() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_G",false]],"get_gb() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Gb",false]],"get_gc() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Gc",false]],"get_leaves() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_leaves",false]],"get_n() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_n",false]],"get_nc() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nC",false]],"get_ng() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nG",false]],"get_ngb() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nGb",false]],"get_ngc() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nGc",false]],"get_vertices() (in module zonoopt)":[[1,"zonoopt.get_vertices",false]],"get_volume() (zonoopt.zono method)":[[1,"zonoopt.Zono.get_volume",false]],"halfspace_intersection() (in module zonoopt)":[[1,"zonoopt.halfspace_intersection",false]],"hybzono (class in zonoopt)":[[1,"zonoopt.HybZono",false]],"inf_norm_conv (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.inf_norm_conv",false]],"infeasible (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.infeasible",false]],"intersect() (zonoopt.box method)":[[1,"zonoopt.Box.intersect",false]],"intersect() (zonoopt.interval method)":[[1,"zonoopt.Interval.intersect",false]],"intersect() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.intersect",false]],"intersection() (in module zonoopt)":[[1,"zonoopt.intersection",false]],"intersection_over_dims() (in module zonoopt)":[[1,"zonoopt.intersection_over_dims",false]],"interval (class in zonoopt)":[[1,"zonoopt.Interval",false]],"interval_2_zono() (in module zonoopt)":[[1,"zonoopt.interval_2_zono",false]],"interval_hull() (zonoopt.box method)":[[1,"zonoopt.Box.interval_hull",false]],"interval_hull() (zonoopt.interval method)":[[1,"zonoopt.Interval.interval_hull",false]],"interval_hull() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.interval_hull",false]],"intervalmatrix (class in zonoopt)":[[1,"zonoopt.IntervalMatrix",false]],"inv() (zonoopt.interval method)":[[1,"zonoopt.Interval.inv",false]],"is_0_1_form() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_0_1_form",false]],"is_conzono() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_conzono",false]],"is_empty() (zonoopt.box method)":[[1,"zonoopt.Box.is_empty",false]],"is_empty() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_empty",false]],"is_empty() (zonoopt.interval method)":[[1,"zonoopt.Interval.is_empty",false]],"is_empty() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.is_empty",false]],"is_empty_set() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_empty_set",false]],"is_hybzono() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_hybzono",false]],"is_point() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_point",false]],"is_sharp() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_sharp",false]],"is_single_valued() (zonoopt.box method)":[[1,"zonoopt.Box.is_single_valued",false]],"is_single_valued() (zonoopt.interval method)":[[1,"zonoopt.Interval.is_single_valued",false]],"is_single_valued() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.is_single_valued",false]],"is_zono() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_zono",false]],"iter (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.iter",false]],"j (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.J",false]],"k_inf_check (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_inf_check",false]],"k_max_admm (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_admm",false]],"k_max_admm_fp_ph1 (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_admm_fp_ph1",false]],"k_max_admm_fp_ph2 (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_admm_fp_ph2",false]],"k_max_bnb (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_bnb",false]],"k_restart (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_restart",false]],"linear_map() (zonoopt.box method)":[[1,"zonoopt.Box.linear_map",false]],"log() (zonoopt.interval method)":[[1,"zonoopt.Interval.log",false]],"lower() (zonoopt.box method)":[[1,"zonoopt.Box.lower",false]],"lower() (zonoopt.interval method)":[[1,"zonoopt.Interval.lower",false]],"make_regular_zono_2d() (in module zonoopt)":[[1,"zonoopt.make_regular_zono_2D",false]],"max_nodes (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.max_nodes",false]],"minkowski_sum() (in module zonoopt)":[[1,"zonoopt.minkowski_sum",false]],"module":[[1,"module-zonoopt",false]],"n_threads_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.n_threads_admm_fp",false]],"n_threads_bnb (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.n_threads_bnb",false]],"nth_root() (zonoopt.interval method)":[[1,"zonoopt.Interval.nth_root",false]],"optimize_over() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.optimize_over",false]],"optsettings (class in zonoopt)":[[1,"zonoopt.OptSettings",false]],"optsolution (class in zonoopt)":[[1,"zonoopt.OptSolution",false]],"plot() (in module zonoopt)":[[1,"zonoopt.plot",false]],"point (class in zonoopt)":[[1,"zonoopt.Point",false]],"polish (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.polish",false]],"pontry_diff() (in module zonoopt)":[[1,"zonoopt.pontry_diff",false]],"primal_residual (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.primal_residual",false]],"project() (zonoopt.box method)":[[1,"zonoopt.Box.project",false]],"project_onto_dims() (in module zonoopt)":[[1,"zonoopt.project_onto_dims",false]],"project_point() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.project_point",false]],"radius() (zonoopt.box method)":[[1,"zonoopt.Box.radius",false]],"radius() (zonoopt.interval method)":[[1,"zonoopt.Interval.radius",false]],"radius() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.radius",false]],"reduce_order() (zonoopt.zono method)":[[1,"zonoopt.Zono.reduce_order",false]],"remove_redundancy() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.remove_redundancy",false]],"rho (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.rho",false]],"rng_seed (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.rng_seed",false]],"rows() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.rows",false]],"run_time (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.run_time",false]],"search_mode (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.search_mode",false]],"set() (zonoopt.conzono method)":[[1,"zonoopt.ConZono.set",false]],"set() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.set",false]],"set() (zonoopt.point method)":[[1,"zonoopt.Point.set",false]],"set() (zonoopt.zono method)":[[1,"zonoopt.Zono.set",false]],"set_diff() (in module zonoopt)":[[1,"zonoopt.set_diff",false]],"settings_valid() (zonoopt.optsettings method)":[[1,"zonoopt.OptSettings.settings_valid",false]],"sin() (zonoopt.interval method)":[[1,"zonoopt.Interval.sin",false]],"single_threaded_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.single_threaded_admm_fp",false]],"sinh() (zonoopt.interval method)":[[1,"zonoopt.Interval.sinh",false]],"size() (zonoopt.box method)":[[1,"zonoopt.Box.size",false]],"sqrt() (zonoopt.interval method)":[[1,"zonoopt.Interval.sqrt",false]],"startup_time (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.startup_time",false]],"support() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.support",false]],"t_max (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.t_max",false]],"tan() (zonoopt.interval method)":[[1,"zonoopt.Interval.tan",false]],"tanh() (zonoopt.interval method)":[[1,"zonoopt.Interval.tanh",false]],"to_array() (zonoopt.box method)":[[1,"zonoopt.Box.to_array",false]],"to_array() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.to_array",false]],"to_json() (in module zonoopt)":[[1,"zonoopt.to_json",false]],"to_triplets() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.to_triplets",false]],"to_zono_approx() (zonoopt.conzono method)":[[1,"zonoopt.ConZono.to_zono_approx",false]],"u (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.u",false]],"u (zonoopt.warmstartparams property)":[[1,"zonoopt.WarmStartParams.u",false]],"union_of_many() (in module zonoopt)":[[1,"zonoopt.union_of_many",false]],"upper() (zonoopt.box method)":[[1,"zonoopt.Box.upper",false]],"upper() (zonoopt.interval method)":[[1,"zonoopt.Interval.upper",false]],"use_interval_contractor (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.use_interval_contractor",false]],"verbose (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.verbose",false]],"verbosity_interval (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.verbosity_interval",false]],"vrep_2_conzono() (in module zonoopt)":[[1,"zonoopt.vrep_2_conzono",false]],"vrep_2_hybzono() (in module zonoopt)":[[1,"zonoopt.vrep_2_hybzono",false]],"warmstartparams (class in zonoopt)":[[1,"zonoopt.WarmStartParams",false]],"width() (zonoopt.box method)":[[1,"zonoopt.Box.width",false]],"width() (zonoopt.interval method)":[[1,"zonoopt.Interval.width",false]],"width() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.width",false]],"x (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.x",false]],"z (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.z",false]],"z (zonoopt.warmstartparams property)":[[1,"zonoopt.WarmStartParams.z",false]],"zono (class in zonoopt)":[[1,"zonoopt.Zono",false]],"zono_union_2_hybzono() (in module zonoopt)":[[1,"zonoopt.zono_union_2_hybzono",false]],"zonoopt":[[1,"module-zonoopt",false]]},"objects":{"":[[1,0,0,"-","zonoopt"]],"zonoopt":[[1,1,1,"","Box"],[1,1,1,"","ConZono"],[1,1,1,"","EmptySet"],[1,1,1,"","HybZono"],[1,1,1,"","Interval"],[1,1,1,"","IntervalMatrix"],[1,1,1,"","OptSettings"],[1,1,1,"","OptSolution"],[1,1,1,"","Point"],[1,1,1,"","WarmStartParams"],[1,1,1,"","Zono"],[1,4,1,"","affine_inclusion"],[1,4,1,"","affine_map"],[1,4,1,"","cartesian_product"],[1,4,1,"","constrain"],[1,4,1,"","convex_hull"],[1,4,1,"","from_json"],[1,4,1,"","get_vertices"],[1,4,1,"","halfspace_intersection"],[1,4,1,"","intersection"],[1,4,1,"","intersection_over_dims"],[1,4,1,"","interval_2_zono"],[1,4,1,"","make_regular_zono_2D"],[1,4,1,"","minkowski_sum"],[1,4,1,"","plot"],[1,4,1,"","pontry_diff"],[1,4,1,"","project_onto_dims"],[1,4,1,"","set_diff"],[1,4,1,"","to_json"],[1,4,1,"","union_of_many"],[1,4,1,"","vrep_2_conzono"],[1,4,1,"","vrep_2_hybzono"],[1,4,1,"","zono_union_2_hybzono"]],"zonoopt.Box":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__eq__"],[1,2,1,"","__ge__"],[1,2,1,"","__getitem__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__le__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmatmul__"],[1,2,1,"","__rmul__"],[1,2,1,"","__rsub__"],[1,2,1,"","__setitem__"],[1,2,1,"","__sub__"],[1,2,1,"","__truediv__"],[1,2,1,"","center"],[1,2,1,"","contains"],[1,2,1,"","contains_set"],[1,2,1,"","contract"],[1,2,1,"","copy"],[1,2,1,"","dot"],[1,2,1,"","from_array"],[1,2,1,"","intersect"],[1,2,1,"","interval_hull"],[1,2,1,"","is_empty"],[1,2,1,"","is_single_valued"],[1,2,1,"","linear_map"],[1,2,1,"","lower"],[1,2,1,"","project"],[1,2,1,"","radius"],[1,2,1,"","size"],[1,2,1,"","to_array"],[1,2,1,"","upper"],[1,2,1,"","width"]],"zonoopt.ConZono":[[1,2,1,"","constraint_reduction"],[1,2,1,"","set"],[1,2,1,"","to_zono_approx"]],"zonoopt.HybZono":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmatmul__"],[1,2,1,"","__rmul__"],[1,2,1,"","__sub__"],[1,2,1,"","bounding_box"],[1,2,1,"","complement"],[1,2,1,"","contains_point"],[1,2,1,"","convert_form"],[1,2,1,"","convex_relaxation"],[1,2,1,"","copy"],[1,2,1,"","get_A"],[1,2,1,"","get_Ab"],[1,2,1,"","get_Ac"],[1,2,1,"","get_G"],[1,2,1,"","get_Gb"],[1,2,1,"","get_Gc"],[1,2,1,"","get_b"],[1,2,1,"","get_c"],[1,2,1,"","get_leaves"],[1,2,1,"","get_n"],[1,2,1,"","get_nC"],[1,2,1,"","get_nG"],[1,2,1,"","get_nGb"],[1,2,1,"","get_nGc"],[1,2,1,"","is_0_1_form"],[1,2,1,"","is_conzono"],[1,2,1,"","is_empty"],[1,2,1,"","is_empty_set"],[1,2,1,"","is_hybzono"],[1,2,1,"","is_point"],[1,2,1,"","is_sharp"],[1,2,1,"","is_zono"],[1,2,1,"","optimize_over"],[1,2,1,"","project_point"],[1,2,1,"","remove_redundancy"],[1,2,1,"","set"],[1,2,1,"","support"]],"zonoopt.Interval":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__eq__"],[1,2,1,"","__ge__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__le__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__pow__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmul__"],[1,2,1,"","__rsub__"],[1,2,1,"","__sub__"],[1,2,1,"","__truediv__"],[1,2,1,"","abs"],[1,2,1,"","arccos"],[1,2,1,"","arccosh"],[1,2,1,"","arcsin"],[1,2,1,"","arcsinh"],[1,2,1,"","arctan"],[1,2,1,"","arctanh"],[1,2,1,"","center"],[1,2,1,"","contains"],[1,2,1,"","contains_set"],[1,2,1,"","copy"],[1,2,1,"","cos"],[1,2,1,"","cosh"],[1,2,1,"","exp"],[1,2,1,"","intersect"],[1,2,1,"","interval_hull"],[1,2,1,"","inv"],[1,2,1,"","is_empty"],[1,2,1,"","is_single_valued"],[1,2,1,"","log"],[1,2,1,"","lower"],[1,2,1,"","nth_root"],[1,2,1,"","radius"],[1,2,1,"","sin"],[1,2,1,"","sinh"],[1,2,1,"","sqrt"],[1,2,1,"","tan"],[1,2,1,"","tanh"],[1,2,1,"","upper"],[1,2,1,"","width"]],"zonoopt.IntervalMatrix":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__eq__"],[1,2,1,"","__ge__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imatmul__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__le__"],[1,2,1,"","__matmul__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmatmul__"],[1,2,1,"","__rmul__"],[1,2,1,"","__rsub__"],[1,2,1,"","__sub__"],[1,2,1,"","__truediv__"],[1,2,1,"","center"],[1,2,1,"","cols"],[1,2,1,"","contains"],[1,2,1,"","contains_set"],[1,2,1,"","diam"],[1,2,1,"","from_array"],[1,2,1,"","from_triplets"],[1,2,1,"","intersect"],[1,2,1,"","interval_hull"],[1,2,1,"","is_empty"],[1,2,1,"","is_single_valued"],[1,2,1,"","radius"],[1,2,1,"","rows"],[1,2,1,"","to_array"],[1,2,1,"","to_triplets"],[1,2,1,"","width"]],"zonoopt.OptSettings":[[1,3,1,"","contractor_iter"],[1,3,1,"","contractor_tree_search_depth"],[1,2,1,"","copy"],[1,3,1,"","cycle_detection_buffer_size"],[1,3,1,"","enable_perturb_admm_fp"],[1,3,1,"","enable_restart_admm_fp"],[1,3,1,"","enable_rng_seed"],[1,3,1,"","eps_a"],[1,3,1,"","eps_dual"],[1,3,1,"","eps_dual_search"],[1,3,1,"","eps_perturb"],[1,3,1,"","eps_prim"],[1,3,1,"","eps_prim_search"],[1,3,1,"","eps_r"],[1,3,1,"","inf_norm_conv"],[1,3,1,"","k_inf_check"],[1,3,1,"","k_max_admm"],[1,3,1,"","k_max_admm_fp_ph1"],[1,3,1,"","k_max_admm_fp_ph2"],[1,3,1,"","k_max_bnb"],[1,3,1,"","k_restart"],[1,3,1,"","max_nodes"],[1,3,1,"","n_threads_admm_fp"],[1,3,1,"","n_threads_bnb"],[1,3,1,"","polish"],[1,3,1,"","rho"],[1,3,1,"","rng_seed"],[1,3,1,"","search_mode"],[1,2,1,"","settings_valid"],[1,3,1,"","single_threaded_admm_fp"],[1,3,1,"","t_max"],[1,3,1,"","use_interval_contractor"],[1,3,1,"","verbose"],[1,3,1,"","verbosity_interval"]],"zonoopt.OptSolution":[[1,3,1,"","J"],[1,3,1,"","converged"],[1,2,1,"","copy"],[1,3,1,"","dual_residual"],[1,3,1,"","infeasible"],[1,3,1,"","iter"],[1,3,1,"","primal_residual"],[1,3,1,"","run_time"],[1,3,1,"","startup_time"],[1,3,1,"","u"],[1,3,1,"","x"],[1,3,1,"","z"]],"zonoopt.Point":[[1,2,1,"","set"]],"zonoopt.WarmStartParams":[[1,2,1,"","copy"],[1,3,1,"","u"],[1,3,1,"","z"]],"zonoopt.Zono":[[1,2,1,"","get_center"],[1,2,1,"","get_volume"],[1,2,1,"","reduce_order"],[1,2,1,"","set"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","property","Python property"],"4":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:method","3":"py:property","4":"py:function"},"terms":{"":[0,1],"0":[0,1],"001":1,"01":[0,1],"03885":0,"05":0,"0x7d93ad3a37f0":1,"0x7d93ad3a3830":1,"0x7d93ad3a3c30":1,"0x7d93ad3a3f70":1,"0x7d93ad3abaf0":1,"0x7d93ad3b0170":1,"1":[0,1],"10":[0,1],"100":1,"10000":1,"100000":1,"15":0,"17574":0,"2":[0,1],"20":1,"2010":1,"2016":1,"2020":1,"2025":[0,1],"2026":0,"2147483647":1,"2504":0,"2602":0,"27":0,"2d":1,"3":[0,1],"308":1,"4":[0,1],"5":[0,1],"5000":1,"6":0,"60":1,"79769e":1,"8":[0,1],"90000":1,"A":1,"For":[0,1],"If":[0,1],"In":[0,1],"It":1,"ON":0,"The":[0,1],"There":0,"To":0,"Will":1,"__add__":1,"__and__":1,"__eq__":1,"__ge__":1,"__getitem__":1,"__iadd__":1,"__imatmul__":1,"__imul__":1,"__isub__":1,"__le__":1,"__matmul__":1,"__mul__":1,"__neg__":1,"__or__":1,"__pow__":1,"__radd__":1,"__rmatmul__":1,"__rmul__":1,"__rsub__":1,"__setitem__":1,"__sub__":1,"__truediv__":1,"_c":0,"_core":1,"_h":0,"a_b":0,"a_c":0,"ab":[0,1],"abc":1,"about":[0,1],"absolut":1,"ac":1,"accord":1,"add":1,"add_execut":0,"add_subdirectori":0,"addit":1,"addition":[0,1],"admm":[0,1],"advantag":0,"affect":1,"affin":[0,1],"affine_inclus":[0,1],"affine_map":[0,1],"al":1,"algebra":0,"algorithm":1,"all":[0,1],"alloc":1,"allow":0,"alpha":[0,1],"also":1,"altern":0,"an":[0,1],"analysi":[0,1],"ani":1,"annot":1,"anoth":1,"api":0,"append":[0,1],"appli":1,"appropri":0,"approxim":1,"ar":[0,1],"arcco":1,"arccosh":1,"arcsin":1,"arcsinh":1,"arctan":1,"arctanh":1,"arg":1,"arg0":1,"argument":1,"arithmet":[0,1],"arrai":[0,1],"arraylik":1,"arxiv":0,"auto":0,"avail":0,"ax":[0,1],"b":[0,1],"backward":1,"base":1,"becaus":1,"befor":1,"begin":0,"below":0,"best":1,"beta":0,"between":[0,1],"binari":[0,1],"bind":0,"bird":1,"bmatrix":0,"bool":1,"boost":[0,1],"both":0,"bound":1,"bounding_box":1,"box":[0,1],"branch":1,"buffer":1,"build":1,"c":[0,1],"calcul":0,"call":1,"can":[0,1],"cartesian":1,"cartesian_product":[0,1],"case":0,"center":[0,1],"central":0,"certain":0,"certif":1,"chang":0,"check":[0,1],"choos":1,"cite":[0,1],"class":[0,1],"cmake":0,"cmake_minimum_requir":0,"co":1,"col":1,"collect":1,"color":[0,1],"column":1,"com":1,"combin":1,"common":0,"commonli":0,"compar":0,"compil":0,"complement":1,"complex":1,"compress":1,"comput":[0,1],"consid":0,"consist":1,"constant":1,"constrain":1,"constraint":[0,1],"constraint_reduct":1,"construct":1,"constructor":1,"contain":1,"contains_point":1,"contains_set":1,"context":0,"continu":1,"contract":1,"contractor":1,"contractor_it":1,"contractor_tree_search_depth":1,"converg":1,"convert":1,"convert_form":1,"convex":[0,1],"convex_hul":[0,1],"convex_relax":1,"conzono":[0,1],"coordin":1,"copi":1,"correspond":1,"cosh":1,"cout":0,"cpp":0,"creat":1,"csc_matrix":1,"csr_matrix":1,"current":[0,1],"custom":0,"cycl":1,"cycle_detection_buffer_s":1,"d":1,"data":1,"deep":1,"default":1,"defin":[0,1],"definit":1,"delta":1,"delta_m":1,"dens":[0,1],"depend":[0,1],"deseri":1,"desir":1,"detect":1,"determin":1,"diag":0,"diam":1,"diamet":1,"did":1,"differ":1,"dim":1,"dimens":1,"direct":1,"discret":[0,1],"displai":1,"disturb":0,"dive":1,"divid":1,"dividend":1,"divis":1,"divisor":1,"do":[0,1],"document":1,"doe":[0,1],"dot":1,"doubl":0,"dt":0,"dtype":1,"dual":1,"dual_residu":1,"dure":1,"dynam":0,"dzonoopt_instal":0,"e":[0,1],"each":1,"easi":0,"effici":[0,1],"eigen":0,"either":0,"element":1,"elementwis":1,"empti":[0,1],"emptyset":[0,1],"enabl":1,"enable_perturb_admm_fp":1,"enable_restart_admm_fp":1,"enable_rng_se":1,"enclosur":1,"end":0,"endl":0,"entir":1,"eps_a":1,"eps_dual":1,"eps_dual_search":1,"eps_perturb":1,"eps_prim":1,"eps_prim_search":1,"eps_r":1,"equal":1,"equival":[0,1],"error":1,"estim":[0,1],"et":1,"etc":1,"even":1,"everi":1,"exact":1,"execut":1,"exhaust":1,"exist":0,"exp":1,"expens":1,"expon":1,"expose_ind":1,"extend":0,"extern":0,"f":[0,1],"facilit":[0,1],"factor":[0,1],"fals":[0,1],"feasibl":1,"fig":0,"figsiz":0,"file":1,"filenam":1,"final":0,"find":[0,1],"find_packag":0,"first":1,"flag":1,"flexibli":0,"float":1,"float64":1,"focus":0,"follow":[0,1],"form":[0,1],"format":1,"forward":[0,1],"found":[0,1],"fp":1,"fraction":1,"from":[0,1],"from_arrai":1,"from_json":[0,1],"from_triplet":1,"function":1,"fundament":0,"further":0,"g":[0,1],"g0":1,"g_b":0,"g_c":0,"gb":1,"gc":1,"gener":[0,1],"get":1,"get_a":1,"get_ab":1,"get_ac":1,"get_b":1,"get_c":1,"get_cent":1,"get_g":1,"get_gb":1,"get_gc":1,"get_leav":1,"get_n":1,"get_nc":1,"get_ng":1,"get_ngb":1,"get_ngc":1,"get_vertic":[0,1],"get_volum":1,"github":1,"given":1,"glunt":0,"gover":1,"greater":1,"guarante":1,"h":[0,1],"ha":[0,1],"halfspac":[0,1],"halfspace_intersect":[0,1],"have":[0,1],"heurist":0,"higher":1,"hit":1,"how":1,"hpp":0,"http":[0,1],"hull":1,"hybrid":1,"hybzono":[0,1],"i":[0,1],"ident":[0,1],"identifi":1,"implement":0,"implic":1,"import":0,"improv":1,"includ":[0,1],"inclus":1,"index":1,"indic":1,"individu":1,"inf_norm_conv":1,"infeas":1,"infin":1,"inform":[0,1],"initi":0,"inner":1,"input":0,"insert":0,"instead":[0,1],"int":[0,1],"integ":0,"integr":0,"interfac":0,"intern":0,"intersect":[0,1],"intersection_over_dim":[0,1],"interv":[0,1],"interval_2_zono":[0,1],"interval_hul":1,"intervalmatrix":[0,1],"inv":1,"invers":1,"invert":1,"iostream":0,"is_0_1_form":1,"is_conzono":1,"is_empti":[0,1],"is_empty_set":1,"is_hybzono":1,"is_point":1,"is_sharp":1,"is_single_valu":1,"is_zono":1,"iter":1,"its":1,"j":[0,1],"jain":1,"json":[0,1],"k":0,"k_inf_check":1,"k_max_admm":1,"k_max_admm_fp_ph1":1,"k_max_admm_fp_ph2":1,"k_max_bnb":1,"k_restart":1,"kei":0,"keyword":1,"known":1,"krikorian":1,"kwarg":1,"lab":1,"layout":0,"lb":1,"lbrace":0,"leaf":1,"leav":1,"left":0,"legend":0,"lh":1,"librari":[0,1],"linear":[0,1],"linear_map":1,"linearli":1,"linprog":1,"list":1,"locat":0,"log":1,"lower":1,"m":1,"mai":0,"main":0,"major":0,"make":[0,1],"make_regular_zono_2d":[0,1],"mani":[0,1],"map":[0,1],"mat_lb":1,"mat_ub":1,"mathcal":0,"matlab":0,"matplotlib":[0,1],"matric":[0,1],"matrix":[0,1],"max":1,"max_":1,"max_nod":1,"maximum":1,"method":[0,1],"min":1,"minim":0,"minkowski":1,"minkowski_sum":[0,1],"minor":0,"minu":1,"minuend":1,"mix":0,"modul":0,"more":[0,1],"most":0,"move":0,"mpc":0,"multipl":1,"multipli":1,"must":[0,1],"n":1,"n_leav":1,"n_o":1,"n_side":[0,1],"n_threads_admm_fp":1,"n_threads_bnb":1,"name":1,"nc":1,"ndarrai":1,"neg":1,"negat":1,"new":1,"ng":[0,1],"ngb":[0,1],"ngc":[0,1],"nlohmann":0,"node":1,"non":1,"none":1,"nonlinear":1,"norm":1,"note":1,"np":[0,1],"nth":1,"nth_root":1,"number":1,"numer":[0,1],"numpi":[0,1],"o":0,"object":1,"octagon":0,"offset":1,"one":[0,1],"onli":1,"onlin":0,"onto":1,"oper":[0,1],"optim":[0,1],"optimize_ov":1,"option":[0,1],"optset":[0,1],"optsolut":[0,1],"order":1,"org":0,"origin":1,"other":1,"otherwis":1,"outer":1,"outer_approx":1,"output":1,"over":[0,1],"overapproxim":1,"overload":[0,1],"overrid":1,"p":1,"pac":1,"packag":0,"page":1,"pangborn":[0,1],"parallelotop":1,"paramet":1,"pass":1,"patch":0,"penalti":1,"perform":[0,1],"perturb":1,"phase":[0,1],"pip":0,"place":1,"plan":0,"pleas":[0,1],"plot":[0,1],"plt":0,"point":[0,1],"pointer":1,"polish":1,"polymorph":[0,1],"polytop":[0,1],"pontry_diff":[0,1],"pontryagin":1,"popul":1,"posit":1,"possibl":1,"power":1,"preserv":1,"preserve_sharp":1,"primal":1,"primal_residu":1,"print":[0,1],"priorit":1,"privat":0,"problem":[0,1],"produc":1,"product":1,"progress":1,"project":[0,1],"project_onto_dim":[0,1],"project_point":1,"promot":[0,1],"properti":1,"provabl":1,"provid":0,"psu":1,"public":[0,1],"publish":[0,1],"pybind11_object":1,"pypi":0,"pyplot":0,"python":0,"q":1,"quad":0,"quadrat":1,"queue":1,"r":[0,1],"radiu":[0,1],"rang":[0,1],"rbrace":0,"reachabl":[0,1],"read":1,"reason":0,"recov":1,"reduce_ord":1,"reduct":1,"redund":1,"refer":1,"rego":1,"regular":1,"rel":1,"relax":1,"remov":1,"remove_redund":1,"rep":[0,1],"repres":[0,1],"represent":[0,1],"requir":[0,1],"reset":1,"residu":1,"restart":1,"restrict":1,"result":1,"return":[0,1],"reus":1,"rh":1,"rho":1,"right":[0,1],"rng":1,"rng_seed":1,"robbin":[0,1],"robot":0,"robust":0,"root":1,"root_n":1,"routin":[0,1],"row":1,"run":1,"run_tim":1,"safeti":0,"satisfi":1,"scalar":1,"scale":1,"scipi":1,"scott":1,"search":1,"search_mod":1,"second":1,"see":1,"seed":1,"self":1,"separ":1,"sequenc":1,"serial":1,"set":[0,1],"set_diff":[0,1],"settings_valid":1,"sever":1,"shape":1,"sharp":1,"shorthand":1,"show":0,"shrink":1,"side":1,"siefert":[0,1],"signific":1,"simplifi":1,"sin":1,"singl":1,"single_threaded_admm_fp":1,"sinh":1,"size":1,"so":1,"solut":1,"solv":[0,1],"some":0,"sourc":0,"spars":[0,1],"sparsematrix":0,"sparseview":0,"sparsiti":[0,1],"special":0,"specif":[0,1],"specifi":1,"spend":1,"sqrt":1,"squar":1,"standard":0,"start":1,"startup_tim":1,"state":[0,1],"static":1,"std":0,"step":0,"stop":1,"store":1,"str":1,"struct":1,"structur":1,"subplot":0,"subset":[0,1],"subtract":1,"subtrahend":1,"suit":0,"sum":1,"superset":1,"support":[0,1],"supportsfloat":1,"supportsindex":1,"supportsint":1,"svd":1,"symmetr":0,"system":[0,1],"t":[0,1],"t_max":1,"tailor":[0,1],"tan":1,"tanh":1,"target_link_librari":0,"term":1,"termin":1,"than":[0,1],"thei":[0,1],"them":0,"thi":[0,1],"thompson":0,"thread":1,"throw":1,"tight":0,"tighten":1,"time":[0,1],"to_arrai":1,"to_json":[0,1],"to_triplet":1,"to_zono_approx":1,"toler":1,"tree":1,"trigger":1,"triplet":1,"trivial":1,"true":[0,1],"tupl":1,"two":1,"type":1,"u":[0,1],"u_max":0,"u_min":0,"ub":1,"unari":1,"uncertain":1,"union":[0,1],"union_of_mani":[0,1],"unsaf":0,"unus":1,"updat":0,"upper":1,"us":[0,1],"usag":0,"use_interval_contractor":1,"user":0,"util":0,"v":[0,1],"v0":1,"v1":1,"v2":1,"val":1,"valid":1,"valu":[0,1],"variabl":1,"vector":[0,1],"vector2d":0,"verbos":1,"verbose_interv":1,"verbosity_interv":1,"verif":0,"verifi":0,"vert":0,"vertex":[0,1],"vertic":1,"vi":1,"via":0,"vinod":1,"vn":1,"volum":1,"vpoli":1,"vrep_2_conzono":[0,1],"vrep_2_hybzono":[0,1],"vz2":1,"w":0,"w_map":0,"warm":1,"warm_start_param":1,"warmstartparam":[0,1],"we":0,"well":0,"when":[0,1],"where":[0,1],"whether":1,"which":1,"while":0,"whose":1,"wide":0,"width":1,"wish":0,"within":[0,1],"without":1,"work":[0,1],"wrap":1,"write":1,"writeabl":1,"x":[0,1],"x0":0,"x0_max":0,"x0_min":0,"x_lb":1,"x_ub":1,"xi":[0,1],"xi_b":[0,1],"xi_c":[0,1],"y":1,"y_max":1,"y_min":1,"you":[0,1],"your":0,"your_project":0,"z":[0,1],"z0":1,"z1":1,"z2":1,"z_list":1,"zero":1,"zero_one_form":1,"zi":1,"zn":1,"zono":[0,1],"zono_union_2_hybzono":[0,1],"zonolab":0,"zonoopt_instal":0,"zonoptr":0,"zonotop":1},"titles":["zonoopt documentation","ZonoOpt Module"],"titleterms":{"A":0,"also":0,"build":0,"constrain":0,"content":0,"document":0,"exampl":0,"featur":0,"hybrid":0,"instal":0,"modul":1,"note":0,"number":0,"refer":0,"see":0,"version":0,"zonoopt":[0,1],"zonotop":0}}) \ No newline at end of file +Search.setIndex({"alltitles":{"A Note on Version Numbers":[[0,"a-note-on-version-numbers"]],"Building and Installing":[[0,"building-and-installing"]],"Contents:":[[0,null]],"Documentation":[[0,"documentation"]],"Examples":[[0,"examples"]],"References":[[0,"references"]],"See Also":[[0,"see-also"]],"ZonoOpt":[[0,"zonoopt"]],"ZonoOpt Features":[[0,"zonoopt-features"]],"ZonoOpt Module":[[1,null]],"Zonotopes, Constrained Zonotopes, and Hybrid Zonotopes":[[0,"zonotopes-constrained-zonotopes-and-hybrid-zonotopes"]],"zonoopt documentation":[[0,null]]},"docnames":["index","zonoopt"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["index.rst","zonoopt.rst"],"indexentries":{"__add__() (zonoopt.box method)":[[1,"zonoopt.Box.__add__",false]],"__add__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__add__",false]],"__add__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__add__",false]],"__add__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__add__",false]],"__and__() (zonoopt.box method)":[[1,"zonoopt.Box.__and__",false]],"__and__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__and__",false]],"__and__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__and__",false]],"__and__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__and__",false]],"__eq__() (zonoopt.box method)":[[1,"zonoopt.Box.__eq__",false]],"__eq__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__eq__",false]],"__eq__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__eq__",false]],"__ge__() (zonoopt.box method)":[[1,"zonoopt.Box.__ge__",false]],"__ge__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__ge__",false]],"__ge__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__ge__",false]],"__getitem__() (zonoopt.box method)":[[1,"zonoopt.Box.__getitem__",false]],"__iadd__() (zonoopt.box method)":[[1,"zonoopt.Box.__iadd__",false]],"__iadd__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__iadd__",false]],"__iadd__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__iadd__",false]],"__iadd__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__iadd__",false]],"__imatmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__imatmul__",false]],"__imul__() (zonoopt.box method)":[[1,"zonoopt.Box.__imul__",false]],"__imul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__imul__",false]],"__imul__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__imul__",false]],"__imul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__imul__",false]],"__isub__() (zonoopt.box method)":[[1,"zonoopt.Box.__isub__",false]],"__isub__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__isub__",false]],"__isub__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__isub__",false]],"__isub__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__isub__",false]],"__le__() (zonoopt.box method)":[[1,"zonoopt.Box.__le__",false]],"__le__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__le__",false]],"__le__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__le__",false]],"__matmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__matmul__",false]],"__mul__() (zonoopt.box method)":[[1,"zonoopt.Box.__mul__",false]],"__mul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__mul__",false]],"__mul__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__mul__",false]],"__mul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__mul__",false]],"__neg__() (zonoopt.box method)":[[1,"zonoopt.Box.__neg__",false]],"__neg__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__neg__",false]],"__neg__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__neg__",false]],"__neg__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__neg__",false]],"__or__() (zonoopt.box method)":[[1,"zonoopt.Box.__or__",false]],"__or__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__or__",false]],"__or__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__or__",false]],"__or__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__or__",false]],"__pow__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__pow__",false]],"__radd__() (zonoopt.box method)":[[1,"zonoopt.Box.__radd__",false]],"__radd__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__radd__",false]],"__radd__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__radd__",false]],"__radd__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__radd__",false]],"__rmatmul__() (zonoopt.box method)":[[1,"zonoopt.Box.__rmatmul__",false]],"__rmatmul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__rmatmul__",false]],"__rmatmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__rmatmul__",false]],"__rmul__() (zonoopt.box method)":[[1,"zonoopt.Box.__rmul__",false]],"__rmul__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__rmul__",false]],"__rmul__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__rmul__",false]],"__rmul__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__rmul__",false]],"__rsub__() (zonoopt.box method)":[[1,"zonoopt.Box.__rsub__",false]],"__rsub__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__rsub__",false]],"__rsub__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__rsub__",false]],"__setitem__() (zonoopt.box method)":[[1,"zonoopt.Box.__setitem__",false]],"__sub__() (zonoopt.box method)":[[1,"zonoopt.Box.__sub__",false]],"__sub__() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.__sub__",false]],"__sub__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__sub__",false]],"__sub__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__sub__",false]],"__truediv__() (zonoopt.box method)":[[1,"zonoopt.Box.__truediv__",false]],"__truediv__() (zonoopt.interval method)":[[1,"zonoopt.Interval.__truediv__",false]],"__truediv__() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.__truediv__",false]],"abs() (zonoopt.interval method)":[[1,"zonoopt.Interval.abs",false]],"affine_inclusion() (in module zonoopt)":[[1,"zonoopt.affine_inclusion",false]],"affine_map() (in module zonoopt)":[[1,"zonoopt.affine_map",false]],"arccos() (zonoopt.interval method)":[[1,"zonoopt.Interval.arccos",false]],"arccosh() (zonoopt.interval method)":[[1,"zonoopt.Interval.arccosh",false]],"arcsin() (zonoopt.interval method)":[[1,"zonoopt.Interval.arcsin",false]],"arcsinh() (zonoopt.interval method)":[[1,"zonoopt.Interval.arcsinh",false]],"arctan() (zonoopt.interval method)":[[1,"zonoopt.Interval.arctan",false]],"arctanh() (zonoopt.interval method)":[[1,"zonoopt.Interval.arctanh",false]],"bounding_box() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.bounding_box",false]],"box (class in zonoopt)":[[1,"zonoopt.Box",false]],"cartesian_product() (in module zonoopt)":[[1,"zonoopt.cartesian_product",false]],"center() (zonoopt.box method)":[[1,"zonoopt.Box.center",false]],"center() (zonoopt.interval method)":[[1,"zonoopt.Interval.center",false]],"center() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.center",false]],"cols() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.cols",false]],"complement() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.complement",false]],"constrain() (in module zonoopt)":[[1,"zonoopt.constrain",false]],"constraint_reduction() (zonoopt.conzono method)":[[1,"zonoopt.ConZono.constraint_reduction",false]],"contains() (zonoopt.box method)":[[1,"zonoopt.Box.contains",false]],"contains() (zonoopt.interval method)":[[1,"zonoopt.Interval.contains",false]],"contains() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.contains",false]],"contains_point() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.contains_point",false]],"contains_set() (zonoopt.box method)":[[1,"zonoopt.Box.contains_set",false]],"contains_set() (zonoopt.interval method)":[[1,"zonoopt.Interval.contains_set",false]],"contains_set() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.contains_set",false]],"contract() (zonoopt.box method)":[[1,"zonoopt.Box.contract",false]],"contractor_iter (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.contractor_iter",false]],"contractor_tree_search_depth (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.contractor_tree_search_depth",false]],"converged (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.converged",false]],"convert_form() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.convert_form",false]],"convex_hull() (in module zonoopt)":[[1,"zonoopt.convex_hull",false]],"convex_relaxation() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.convex_relaxation",false]],"conzono (class in zonoopt)":[[1,"zonoopt.ConZono",false]],"copy() (zonoopt.box method)":[[1,"zonoopt.Box.copy",false]],"copy() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.copy",false]],"copy() (zonoopt.interval method)":[[1,"zonoopt.Interval.copy",false]],"copy() (zonoopt.optsettings method)":[[1,"zonoopt.OptSettings.copy",false]],"copy() (zonoopt.optsolution method)":[[1,"zonoopt.OptSolution.copy",false]],"copy() (zonoopt.warmstartparams method)":[[1,"zonoopt.WarmStartParams.copy",false]],"cos() (zonoopt.interval method)":[[1,"zonoopt.Interval.cos",false]],"cosh() (zonoopt.interval method)":[[1,"zonoopt.Interval.cosh",false]],"cycle_detection_buffer_size (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.cycle_detection_buffer_size",false]],"diam() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.diam",false]],"dot() (zonoopt.box method)":[[1,"zonoopt.Box.dot",false]],"dual_residual (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.dual_residual",false]],"emptyset (class in zonoopt)":[[1,"zonoopt.EmptySet",false]],"enable_perturb_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.enable_perturb_admm_fp",false]],"enable_restart_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.enable_restart_admm_fp",false]],"enable_rng_seed (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.enable_rng_seed",false]],"eps_a (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_a",false]],"eps_dual (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_dual",false]],"eps_dual_search (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_dual_search",false]],"eps_perturb (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_perturb",false]],"eps_prim (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_prim",false]],"eps_prim_search (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_prim_search",false]],"eps_r (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.eps_r",false]],"exp() (zonoopt.interval method)":[[1,"zonoopt.Interval.exp",false]],"from_array() (zonoopt.box static method)":[[1,"zonoopt.Box.from_array",false]],"from_array() (zonoopt.intervalmatrix static method)":[[1,"zonoopt.IntervalMatrix.from_array",false]],"from_json() (in module zonoopt)":[[1,"zonoopt.from_json",false]],"from_triplets() (zonoopt.intervalmatrix static method)":[[1,"zonoopt.IntervalMatrix.from_triplets",false]],"get_a() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_A",false]],"get_ab() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Ab",false]],"get_ac() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Ac",false]],"get_b() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_b",false]],"get_c() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_c",false]],"get_center() (zonoopt.zono method)":[[1,"zonoopt.Zono.get_center",false]],"get_g() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_G",false]],"get_gb() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Gb",false]],"get_gc() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_Gc",false]],"get_leaves() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_leaves",false]],"get_n() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_n",false]],"get_nc() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nC",false]],"get_ng() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nG",false]],"get_ngb() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nGb",false]],"get_ngc() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.get_nGc",false]],"get_vertices() (in module zonoopt)":[[1,"zonoopt.get_vertices",false]],"get_volume() (zonoopt.zono method)":[[1,"zonoopt.Zono.get_volume",false]],"halfspace_intersection() (in module zonoopt)":[[1,"zonoopt.halfspace_intersection",false]],"hybzono (class in zonoopt)":[[1,"zonoopt.HybZono",false]],"inf_norm_conv (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.inf_norm_conv",false]],"infeasible (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.infeasible",false]],"intersect() (zonoopt.box method)":[[1,"zonoopt.Box.intersect",false]],"intersect() (zonoopt.interval method)":[[1,"zonoopt.Interval.intersect",false]],"intersect() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.intersect",false]],"intersection() (in module zonoopt)":[[1,"zonoopt.intersection",false]],"intersection_over_dims() (in module zonoopt)":[[1,"zonoopt.intersection_over_dims",false]],"interval (class in zonoopt)":[[1,"zonoopt.Interval",false]],"interval_2_zono() (in module zonoopt)":[[1,"zonoopt.interval_2_zono",false]],"interval_hull() (zonoopt.box method)":[[1,"zonoopt.Box.interval_hull",false]],"interval_hull() (zonoopt.interval method)":[[1,"zonoopt.Interval.interval_hull",false]],"interval_hull() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.interval_hull",false]],"intervalmatrix (class in zonoopt)":[[1,"zonoopt.IntervalMatrix",false]],"inv() (zonoopt.interval method)":[[1,"zonoopt.Interval.inv",false]],"is_0_1_form() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_0_1_form",false]],"is_conzono() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_conzono",false]],"is_empty() (zonoopt.box method)":[[1,"zonoopt.Box.is_empty",false]],"is_empty() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_empty",false]],"is_empty() (zonoopt.interval method)":[[1,"zonoopt.Interval.is_empty",false]],"is_empty() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.is_empty",false]],"is_empty_set() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_empty_set",false]],"is_hybzono() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_hybzono",false]],"is_point() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_point",false]],"is_sharp() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_sharp",false]],"is_single_valued() (zonoopt.box method)":[[1,"zonoopt.Box.is_single_valued",false]],"is_single_valued() (zonoopt.interval method)":[[1,"zonoopt.Interval.is_single_valued",false]],"is_single_valued() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.is_single_valued",false]],"is_zono() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.is_zono",false]],"iter (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.iter",false]],"j (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.J",false]],"k_inf_check (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_inf_check",false]],"k_max_admm (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_admm",false]],"k_max_admm_fp_ph1 (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_admm_fp_ph1",false]],"k_max_admm_fp_ph2 (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_admm_fp_ph2",false]],"k_max_bnb (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_max_bnb",false]],"k_restart (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.k_restart",false]],"linear_map() (zonoopt.box method)":[[1,"zonoopt.Box.linear_map",false]],"log() (zonoopt.interval method)":[[1,"zonoopt.Interval.log",false]],"lower() (zonoopt.box method)":[[1,"zonoopt.Box.lower",false]],"lower() (zonoopt.interval method)":[[1,"zonoopt.Interval.lower",false]],"make_regular_zono_2d() (in module zonoopt)":[[1,"zonoopt.make_regular_zono_2D",false]],"max_nodes (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.max_nodes",false]],"minkowski_sum() (in module zonoopt)":[[1,"zonoopt.minkowski_sum",false]],"module":[[1,"module-zonoopt",false]],"n_threads_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.n_threads_admm_fp",false]],"n_threads_bnb (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.n_threads_bnb",false]],"nth_root() (zonoopt.interval method)":[[1,"zonoopt.Interval.nth_root",false]],"optimize_over() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.optimize_over",false]],"optsettings (class in zonoopt)":[[1,"zonoopt.OptSettings",false]],"optsolution (class in zonoopt)":[[1,"zonoopt.OptSolution",false]],"plot() (in module zonoopt)":[[1,"zonoopt.plot",false]],"point (class in zonoopt)":[[1,"zonoopt.Point",false]],"polish (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.polish",false]],"pontry_diff() (in module zonoopt)":[[1,"zonoopt.pontry_diff",false]],"primal_residual (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.primal_residual",false]],"project() (zonoopt.box method)":[[1,"zonoopt.Box.project",false]],"project_onto_dims() (in module zonoopt)":[[1,"zonoopt.project_onto_dims",false]],"project_point() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.project_point",false]],"radius() (zonoopt.box method)":[[1,"zonoopt.Box.radius",false]],"radius() (zonoopt.interval method)":[[1,"zonoopt.Interval.radius",false]],"radius() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.radius",false]],"reduce_order() (zonoopt.zono method)":[[1,"zonoopt.Zono.reduce_order",false]],"remove_redundancy() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.remove_redundancy",false]],"rho (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.rho",false]],"rng_seed (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.rng_seed",false]],"rows() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.rows",false]],"run_time (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.run_time",false]],"search_mode (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.search_mode",false]],"set() (zonoopt.conzono method)":[[1,"zonoopt.ConZono.set",false]],"set() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.set",false]],"set() (zonoopt.point method)":[[1,"zonoopt.Point.set",false]],"set() (zonoopt.zono method)":[[1,"zonoopt.Zono.set",false]],"set_diff() (in module zonoopt)":[[1,"zonoopt.set_diff",false]],"settings_valid() (zonoopt.optsettings method)":[[1,"zonoopt.OptSettings.settings_valid",false]],"sin() (zonoopt.interval method)":[[1,"zonoopt.Interval.sin",false]],"single_threaded_admm_fp (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.single_threaded_admm_fp",false]],"sinh() (zonoopt.interval method)":[[1,"zonoopt.Interval.sinh",false]],"size() (zonoopt.box method)":[[1,"zonoopt.Box.size",false]],"sqrt() (zonoopt.interval method)":[[1,"zonoopt.Interval.sqrt",false]],"startup_time (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.startup_time",false]],"support() (zonoopt.hybzono method)":[[1,"zonoopt.HybZono.support",false]],"t_max (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.t_max",false]],"tan() (zonoopt.interval method)":[[1,"zonoopt.Interval.tan",false]],"tanh() (zonoopt.interval method)":[[1,"zonoopt.Interval.tanh",false]],"to_array() (zonoopt.box method)":[[1,"zonoopt.Box.to_array",false]],"to_array() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.to_array",false]],"to_json() (in module zonoopt)":[[1,"zonoopt.to_json",false]],"to_triplets() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.to_triplets",false]],"to_zono_approx() (zonoopt.conzono method)":[[1,"zonoopt.ConZono.to_zono_approx",false]],"u (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.u",false]],"u (zonoopt.warmstartparams property)":[[1,"zonoopt.WarmStartParams.u",false]],"union_of_many() (in module zonoopt)":[[1,"zonoopt.union_of_many",false]],"upper() (zonoopt.box method)":[[1,"zonoopt.Box.upper",false]],"upper() (zonoopt.interval method)":[[1,"zonoopt.Interval.upper",false]],"use_interval_contractor (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.use_interval_contractor",false]],"verbose (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.verbose",false]],"verbosity_interval (zonoopt.optsettings property)":[[1,"zonoopt.OptSettings.verbosity_interval",false]],"vrep_2_conzono() (in module zonoopt)":[[1,"zonoopt.vrep_2_conzono",false]],"vrep_2_hybzono() (in module zonoopt)":[[1,"zonoopt.vrep_2_hybzono",false]],"warmstartparams (class in zonoopt)":[[1,"zonoopt.WarmStartParams",false]],"width() (zonoopt.box method)":[[1,"zonoopt.Box.width",false]],"width() (zonoopt.interval method)":[[1,"zonoopt.Interval.width",false]],"width() (zonoopt.intervalmatrix method)":[[1,"zonoopt.IntervalMatrix.width",false]],"x (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.x",false]],"z (zonoopt.optsolution property)":[[1,"zonoopt.OptSolution.z",false]],"z (zonoopt.warmstartparams property)":[[1,"zonoopt.WarmStartParams.z",false]],"zono (class in zonoopt)":[[1,"zonoopt.Zono",false]],"zono_union_2_hybzono() (in module zonoopt)":[[1,"zonoopt.zono_union_2_hybzono",false]],"zonoopt":[[1,"module-zonoopt",false]]},"objects":{"":[[1,0,0,"-","zonoopt"]],"zonoopt":[[1,1,1,"","Box"],[1,1,1,"","ConZono"],[1,1,1,"","EmptySet"],[1,1,1,"","HybZono"],[1,1,1,"","Interval"],[1,1,1,"","IntervalMatrix"],[1,1,1,"","OptSettings"],[1,1,1,"","OptSolution"],[1,1,1,"","Point"],[1,1,1,"","WarmStartParams"],[1,1,1,"","Zono"],[1,4,1,"","affine_inclusion"],[1,4,1,"","affine_map"],[1,4,1,"","cartesian_product"],[1,4,1,"","constrain"],[1,4,1,"","convex_hull"],[1,4,1,"","from_json"],[1,4,1,"","get_vertices"],[1,4,1,"","halfspace_intersection"],[1,4,1,"","intersection"],[1,4,1,"","intersection_over_dims"],[1,4,1,"","interval_2_zono"],[1,4,1,"","make_regular_zono_2D"],[1,4,1,"","minkowski_sum"],[1,4,1,"","plot"],[1,4,1,"","pontry_diff"],[1,4,1,"","project_onto_dims"],[1,4,1,"","set_diff"],[1,4,1,"","to_json"],[1,4,1,"","union_of_many"],[1,4,1,"","vrep_2_conzono"],[1,4,1,"","vrep_2_hybzono"],[1,4,1,"","zono_union_2_hybzono"]],"zonoopt.Box":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__eq__"],[1,2,1,"","__ge__"],[1,2,1,"","__getitem__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__le__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmatmul__"],[1,2,1,"","__rmul__"],[1,2,1,"","__rsub__"],[1,2,1,"","__setitem__"],[1,2,1,"","__sub__"],[1,2,1,"","__truediv__"],[1,2,1,"","center"],[1,2,1,"","contains"],[1,2,1,"","contains_set"],[1,2,1,"","contract"],[1,2,1,"","copy"],[1,2,1,"","dot"],[1,2,1,"","from_array"],[1,2,1,"","intersect"],[1,2,1,"","interval_hull"],[1,2,1,"","is_empty"],[1,2,1,"","is_single_valued"],[1,2,1,"","linear_map"],[1,2,1,"","lower"],[1,2,1,"","project"],[1,2,1,"","radius"],[1,2,1,"","size"],[1,2,1,"","to_array"],[1,2,1,"","upper"],[1,2,1,"","width"]],"zonoopt.ConZono":[[1,2,1,"","constraint_reduction"],[1,2,1,"","set"],[1,2,1,"","to_zono_approx"]],"zonoopt.HybZono":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmatmul__"],[1,2,1,"","__rmul__"],[1,2,1,"","__sub__"],[1,2,1,"","bounding_box"],[1,2,1,"","complement"],[1,2,1,"","contains_point"],[1,2,1,"","convert_form"],[1,2,1,"","convex_relaxation"],[1,2,1,"","copy"],[1,2,1,"","get_A"],[1,2,1,"","get_Ab"],[1,2,1,"","get_Ac"],[1,2,1,"","get_G"],[1,2,1,"","get_Gb"],[1,2,1,"","get_Gc"],[1,2,1,"","get_b"],[1,2,1,"","get_c"],[1,2,1,"","get_leaves"],[1,2,1,"","get_n"],[1,2,1,"","get_nC"],[1,2,1,"","get_nG"],[1,2,1,"","get_nGb"],[1,2,1,"","get_nGc"],[1,2,1,"","is_0_1_form"],[1,2,1,"","is_conzono"],[1,2,1,"","is_empty"],[1,2,1,"","is_empty_set"],[1,2,1,"","is_hybzono"],[1,2,1,"","is_point"],[1,2,1,"","is_sharp"],[1,2,1,"","is_zono"],[1,2,1,"","optimize_over"],[1,2,1,"","project_point"],[1,2,1,"","remove_redundancy"],[1,2,1,"","set"],[1,2,1,"","support"]],"zonoopt.Interval":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__eq__"],[1,2,1,"","__ge__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__le__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__pow__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmul__"],[1,2,1,"","__rsub__"],[1,2,1,"","__sub__"],[1,2,1,"","__truediv__"],[1,2,1,"","abs"],[1,2,1,"","arccos"],[1,2,1,"","arccosh"],[1,2,1,"","arcsin"],[1,2,1,"","arcsinh"],[1,2,1,"","arctan"],[1,2,1,"","arctanh"],[1,2,1,"","center"],[1,2,1,"","contains"],[1,2,1,"","contains_set"],[1,2,1,"","copy"],[1,2,1,"","cos"],[1,2,1,"","cosh"],[1,2,1,"","exp"],[1,2,1,"","intersect"],[1,2,1,"","interval_hull"],[1,2,1,"","inv"],[1,2,1,"","is_empty"],[1,2,1,"","is_single_valued"],[1,2,1,"","log"],[1,2,1,"","lower"],[1,2,1,"","nth_root"],[1,2,1,"","radius"],[1,2,1,"","sin"],[1,2,1,"","sinh"],[1,2,1,"","sqrt"],[1,2,1,"","tan"],[1,2,1,"","tanh"],[1,2,1,"","upper"],[1,2,1,"","width"]],"zonoopt.IntervalMatrix":[[1,2,1,"","__add__"],[1,2,1,"","__and__"],[1,2,1,"","__eq__"],[1,2,1,"","__ge__"],[1,2,1,"","__iadd__"],[1,2,1,"","__imatmul__"],[1,2,1,"","__imul__"],[1,2,1,"","__isub__"],[1,2,1,"","__le__"],[1,2,1,"","__matmul__"],[1,2,1,"","__mul__"],[1,2,1,"","__neg__"],[1,2,1,"","__or__"],[1,2,1,"","__radd__"],[1,2,1,"","__rmatmul__"],[1,2,1,"","__rmul__"],[1,2,1,"","__rsub__"],[1,2,1,"","__sub__"],[1,2,1,"","__truediv__"],[1,2,1,"","center"],[1,2,1,"","cols"],[1,2,1,"","contains"],[1,2,1,"","contains_set"],[1,2,1,"","diam"],[1,2,1,"","from_array"],[1,2,1,"","from_triplets"],[1,2,1,"","intersect"],[1,2,1,"","interval_hull"],[1,2,1,"","is_empty"],[1,2,1,"","is_single_valued"],[1,2,1,"","radius"],[1,2,1,"","rows"],[1,2,1,"","to_array"],[1,2,1,"","to_triplets"],[1,2,1,"","width"]],"zonoopt.OptSettings":[[1,3,1,"","contractor_iter"],[1,3,1,"","contractor_tree_search_depth"],[1,2,1,"","copy"],[1,3,1,"","cycle_detection_buffer_size"],[1,3,1,"","enable_perturb_admm_fp"],[1,3,1,"","enable_restart_admm_fp"],[1,3,1,"","enable_rng_seed"],[1,3,1,"","eps_a"],[1,3,1,"","eps_dual"],[1,3,1,"","eps_dual_search"],[1,3,1,"","eps_perturb"],[1,3,1,"","eps_prim"],[1,3,1,"","eps_prim_search"],[1,3,1,"","eps_r"],[1,3,1,"","inf_norm_conv"],[1,3,1,"","k_inf_check"],[1,3,1,"","k_max_admm"],[1,3,1,"","k_max_admm_fp_ph1"],[1,3,1,"","k_max_admm_fp_ph2"],[1,3,1,"","k_max_bnb"],[1,3,1,"","k_restart"],[1,3,1,"","max_nodes"],[1,3,1,"","n_threads_admm_fp"],[1,3,1,"","n_threads_bnb"],[1,3,1,"","polish"],[1,3,1,"","rho"],[1,3,1,"","rng_seed"],[1,3,1,"","search_mode"],[1,2,1,"","settings_valid"],[1,3,1,"","single_threaded_admm_fp"],[1,3,1,"","t_max"],[1,3,1,"","use_interval_contractor"],[1,3,1,"","verbose"],[1,3,1,"","verbosity_interval"]],"zonoopt.OptSolution":[[1,3,1,"","J"],[1,3,1,"","converged"],[1,2,1,"","copy"],[1,3,1,"","dual_residual"],[1,3,1,"","infeasible"],[1,3,1,"","iter"],[1,3,1,"","primal_residual"],[1,3,1,"","run_time"],[1,3,1,"","startup_time"],[1,3,1,"","u"],[1,3,1,"","x"],[1,3,1,"","z"]],"zonoopt.Point":[[1,2,1,"","set"]],"zonoopt.WarmStartParams":[[1,2,1,"","copy"],[1,3,1,"","u"],[1,3,1,"","z"]],"zonoopt.Zono":[[1,2,1,"","get_center"],[1,2,1,"","get_volume"],[1,2,1,"","reduce_order"],[1,2,1,"","set"]]},"objnames":{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","property","Python property"],"4":["py","function","Python function"]},"objtypes":{"0":"py:module","1":"py:class","2":"py:method","3":"py:property","4":"py:function"},"terms":{"":[0,1],"0":[0,1],"001":1,"01":[0,1],"03885":0,"05":0,"0x76d83b7badb0":1,"0x76d83b7bb470":1,"0x76d83b7bb5b0":1,"0x76d83b7c0bf0":1,"0x76d83b7c3030":1,"0x76d83b7c32b0":1,"1":[0,1],"10":[0,1],"100":1,"10000":1,"100000":1,"15":0,"17574":0,"2":[0,1],"20":1,"2010":1,"2016":1,"2020":1,"2025":[0,1],"2026":0,"2147483647":1,"2504":0,"2602":0,"27":0,"2d":1,"3":[0,1],"308":1,"4":[0,1],"5":[0,1],"5000":1,"6":0,"60":1,"79769e":1,"8":[0,1],"90000":1,"A":1,"For":[0,1],"If":[0,1],"In":[0,1],"It":1,"ON":0,"The":[0,1],"There":0,"To":0,"Will":1,"__add__":1,"__and__":1,"__eq__":1,"__ge__":1,"__getitem__":1,"__iadd__":1,"__imatmul__":1,"__imul__":1,"__isub__":1,"__le__":1,"__matmul__":1,"__mul__":1,"__neg__":1,"__or__":1,"__pow__":1,"__radd__":1,"__rmatmul__":1,"__rmul__":1,"__rsub__":1,"__setitem__":1,"__sub__":1,"__truediv__":1,"_c":0,"_core":1,"_h":0,"a_b":0,"a_c":0,"ab":[0,1],"abc":1,"about":[0,1],"absolut":1,"ac":1,"accord":1,"add":1,"add_execut":0,"add_subdirectori":0,"addit":1,"addition":[0,1],"admm":[0,1],"advantag":0,"affect":1,"affin":[0,1],"affine_inclus":[0,1],"affine_map":[0,1],"al":1,"algebra":0,"algorithm":1,"all":[0,1],"alloc":1,"allow":0,"alpha":[0,1],"also":1,"altern":0,"an":[0,1],"analysi":[0,1],"ani":1,"annot":1,"anoth":1,"api":0,"append":[0,1],"appli":1,"appropri":0,"approxim":1,"ar":[0,1],"arcco":1,"arccosh":1,"arcsin":1,"arcsinh":1,"arctan":1,"arctanh":1,"arg":1,"arg0":1,"argument":1,"arithmet":[0,1],"arrai":[0,1],"arraylik":1,"arxiv":0,"auto":0,"avail":0,"ax":[0,1],"b":[0,1],"backward":1,"bar":1,"base":1,"becaus":1,"befor":1,"begin":0,"below":0,"best":1,"beta":0,"between":[0,1],"binari":[0,1],"bind":0,"bird":1,"bmatrix":0,"bool":1,"boost":[0,1],"both":0,"bound":1,"bounding_box":1,"box":[0,1],"branch":1,"buffer":1,"build":1,"c":[0,1],"calcul":0,"call":1,"can":[0,1],"cartesian":1,"cartesian_product":[0,1],"case":0,"center":[0,1],"central":0,"certain":0,"certif":1,"chang":0,"check":[0,1],"choos":1,"cite":[0,1],"class":[0,1],"cmake":0,"cmake_minimum_requir":0,"co":1,"col":1,"collect":1,"color":[0,1],"column":1,"com":1,"combin":1,"common":0,"commonli":0,"compar":0,"compil":0,"complement":1,"complex":1,"compress":1,"comput":[0,1],"consid":0,"consist":1,"constant":1,"constrain":1,"constraint":[0,1],"constraint_reduct":1,"construct":1,"constructor":1,"contain":1,"contains_point":1,"contains_set":1,"context":0,"continu":1,"contract":1,"contractor":1,"contractor_it":1,"contractor_tree_search_depth":1,"converg":1,"convert":1,"convert_form":1,"convex":[0,1],"convex_hul":[0,1],"convex_relax":1,"conzono":[0,1],"coordin":1,"copi":1,"correspond":1,"cosh":1,"cout":0,"cpp":0,"creat":1,"csc_matrix":1,"csr_matrix":1,"current":[0,1],"custom":0,"cycl":1,"cycle_detection_buffer_s":1,"d":1,"data":1,"deep":1,"default":1,"defin":[0,1],"definit":1,"delta":1,"delta_m":1,"dens":[0,1],"depend":[0,1],"deseri":1,"desir":1,"detect":1,"determin":1,"diag":0,"diam":1,"diamet":1,"did":1,"differ":1,"dim":1,"dimens":1,"direct":1,"discret":[0,1],"displai":1,"disturb":0,"dive":1,"divid":1,"dividend":1,"divis":1,"divisor":1,"do":[0,1],"document":1,"doe":[0,1],"dot":1,"doubl":0,"dt":0,"dtype":1,"dual":1,"dual_residu":1,"dure":1,"dynam":0,"dzonoopt_instal":0,"e":[0,1],"each":1,"easi":0,"effici":[0,1],"eigen":0,"either":0,"element":1,"elementwis":1,"empti":[0,1],"emptyset":[0,1],"enabl":1,"enable_perturb_admm_fp":1,"enable_progress_bar":1,"enable_restart_admm_fp":1,"enable_rng_se":1,"enclosur":1,"end":0,"endl":0,"entir":1,"eps_a":1,"eps_dual":1,"eps_dual_search":1,"eps_perturb":1,"eps_prim":1,"eps_prim_search":1,"eps_r":1,"equal":1,"equival":[0,1],"error":1,"estim":[0,1],"et":1,"etc":1,"even":1,"everi":1,"exact":1,"execut":1,"exhaust":1,"exist":0,"exp":1,"expens":1,"expon":1,"expose_ind":1,"extend":0,"extern":0,"f":[0,1],"facilit":[0,1],"factor":[0,1],"fals":[0,1],"feasibl":1,"fig":0,"figsiz":0,"file":1,"filenam":1,"final":0,"find":[0,1],"find_packag":0,"first":1,"flag":1,"flexibli":0,"float":1,"float64":1,"focus":0,"follow":[0,1],"form":[0,1],"format":1,"forward":[0,1],"found":[0,1],"fp":1,"fraction":1,"from":[0,1],"from_arrai":1,"from_json":[0,1],"from_triplet":1,"function":1,"fundament":0,"further":0,"g":[0,1],"g0":1,"g_b":0,"g_c":0,"gb":1,"gc":1,"gener":[0,1],"get":1,"get_a":1,"get_ab":1,"get_ac":1,"get_b":1,"get_c":1,"get_cent":1,"get_g":1,"get_gb":1,"get_gc":1,"get_leav":1,"get_n":1,"get_nc":1,"get_ng":1,"get_ngb":1,"get_ngc":1,"get_vertic":[0,1],"get_volum":1,"github":1,"given":1,"glunt":0,"gover":1,"greater":1,"guarante":1,"h":[0,1],"ha":[0,1],"halfspac":[0,1],"halfspace_intersect":[0,1],"have":[0,1],"heurist":0,"higher":1,"hit":1,"how":1,"hpp":0,"http":[0,1],"hull":1,"hybrid":1,"hybzono":[0,1],"i":[0,1],"ident":[0,1],"identifi":1,"implement":0,"implic":1,"import":0,"improv":1,"includ":[0,1],"inclus":1,"index":1,"indic":1,"individu":1,"inf_norm_conv":1,"infeas":1,"infin":1,"inform":[0,1],"initi":0,"inner":1,"input":0,"insert":0,"instead":[0,1],"int":[0,1],"integ":0,"integr":0,"interfac":0,"intern":0,"intersect":[0,1],"intersection_over_dim":[0,1],"interv":[0,1],"interval_2_zono":[0,1],"interval_hul":1,"intervalmatrix":[0,1],"inv":1,"invers":1,"invert":1,"iostream":0,"is_0_1_form":1,"is_conzono":1,"is_empti":[0,1],"is_empty_set":1,"is_hybzono":1,"is_point":1,"is_sharp":1,"is_single_valu":1,"is_zono":1,"iter":1,"its":1,"j":[0,1],"jain":1,"json":[0,1],"k":0,"k_inf_check":1,"k_max_admm":1,"k_max_admm_fp_ph1":1,"k_max_admm_fp_ph2":1,"k_max_bnb":1,"k_restart":1,"kei":0,"keyword":1,"known":1,"krikorian":1,"kwarg":1,"lab":1,"layout":0,"lb":1,"lbrace":0,"leaf":1,"leav":1,"left":0,"legend":0,"lh":1,"librari":[0,1],"linear":[0,1],"linear_map":1,"linearli":1,"linprog":1,"list":1,"locat":0,"log":1,"lower":1,"m":1,"mai":0,"main":0,"major":0,"make":[0,1],"make_regular_zono_2d":[0,1],"mani":[0,1],"map":[0,1],"mat_lb":1,"mat_ub":1,"mathcal":0,"matlab":0,"matplotlib":[0,1],"matric":[0,1],"matrix":[0,1],"max":1,"max_":1,"max_nod":1,"maximum":1,"method":[0,1],"min":1,"minim":0,"minkowski":1,"minkowski_sum":[0,1],"minor":0,"minu":1,"minuend":1,"mix":0,"modul":0,"more":[0,1],"most":0,"move":0,"mpc":0,"multipl":1,"multipli":1,"must":[0,1],"n":1,"n_leav":1,"n_o":1,"n_side":[0,1],"n_threads_admm_fp":1,"n_threads_bnb":1,"name":1,"nc":1,"ndarrai":1,"neg":1,"negat":1,"new":1,"ng":[0,1],"ngb":[0,1],"ngc":[0,1],"nlohmann":0,"node":1,"non":1,"none":1,"nonlinear":1,"norm":1,"note":1,"np":[0,1],"nth":1,"nth_root":1,"number":1,"numer":[0,1],"numpi":[0,1],"o":0,"object":1,"octagon":0,"offset":1,"one":[0,1],"onli":1,"onlin":0,"onto":1,"oper":[0,1],"optim":[0,1],"optimize_ov":1,"option":[0,1],"optset":[0,1],"optsolut":[0,1],"order":1,"org":0,"origin":1,"other":1,"otherwis":1,"outer":1,"outer_approx":1,"output":1,"over":[0,1],"overapproxim":1,"overload":[0,1],"overrid":1,"p":1,"pac":1,"packag":0,"page":1,"pangborn":[0,1],"parallelotop":1,"paramet":1,"pass":1,"patch":0,"penalti":1,"perform":[0,1],"perturb":1,"phase":[0,1],"pip":0,"place":1,"plan":0,"pleas":[0,1],"plot":[0,1],"plt":0,"point":[0,1],"pointer":1,"polish":1,"polymorph":[0,1],"polytop":[0,1],"pontry_diff":[0,1],"pontryagin":1,"popul":1,"posit":1,"possibl":1,"power":1,"preserv":1,"preserve_sharp":1,"primal":1,"primal_residu":1,"print":[0,1],"priorit":1,"privat":0,"problem":[0,1],"produc":1,"product":1,"progress":1,"project":[0,1],"project_onto_dim":[0,1],"project_point":1,"promot":[0,1],"properti":1,"provabl":1,"provid":0,"psu":1,"public":[0,1],"publish":[0,1],"pybind11_object":1,"pypi":0,"pyplot":0,"python":0,"q":1,"quad":0,"quadrat":1,"queue":1,"r":[0,1],"radiu":[0,1],"rang":[0,1],"rbrace":0,"reachabl":[0,1],"read":1,"reason":0,"recov":1,"reduce_ord":1,"reduct":1,"redund":1,"refer":1,"rego":1,"regular":1,"rel":1,"relax":1,"remov":1,"remove_redund":1,"rep":[0,1],"repres":[0,1],"represent":[0,1],"requir":[0,1],"reset":1,"residu":1,"restart":1,"restrict":1,"result":1,"return":[0,1],"reus":1,"rh":1,"rho":1,"right":[0,1],"rng":1,"rng_seed":1,"robbin":[0,1],"robot":0,"robust":0,"root":1,"root_n":1,"routin":[0,1],"row":1,"run":1,"run_tim":1,"safeti":0,"satisfi":1,"scalar":1,"scale":1,"scipi":1,"scott":1,"search":1,"search_mod":1,"second":1,"see":1,"seed":1,"self":1,"separ":1,"sequenc":1,"serial":1,"set":[0,1],"set_diff":[0,1],"settings_valid":1,"sever":1,"shape":1,"sharp":1,"shorthand":1,"show":0,"shrink":1,"side":1,"siefert":[0,1],"signific":1,"simplifi":1,"sin":1,"singl":1,"single_threaded_admm_fp":1,"sinh":1,"size":1,"so":1,"solut":1,"solv":[0,1],"some":0,"sourc":0,"spars":[0,1],"sparsematrix":0,"sparseview":0,"sparsiti":[0,1],"special":0,"specif":[0,1],"specifi":1,"spend":1,"sqrt":1,"squar":1,"standard":0,"start":1,"startup_tim":1,"state":[0,1],"static":1,"std":0,"step":0,"stop":1,"store":1,"str":1,"struct":1,"structur":1,"subplot":0,"subset":[0,1],"subtract":1,"subtrahend":1,"suit":0,"sum":1,"superset":1,"support":[0,1],"supportsfloat":1,"supportsindex":1,"supportsint":1,"svd":1,"symmetr":0,"system":[0,1],"t":[0,1],"t_max":1,"tailor":[0,1],"tan":1,"tanh":1,"target_link_librari":0,"term":1,"termin":1,"than":[0,1],"thei":[0,1],"them":0,"thi":[0,1],"thompson":0,"thread":1,"throw":1,"tight":0,"tighten":1,"time":[0,1],"to_arrai":1,"to_json":[0,1],"to_triplet":1,"to_zono_approx":1,"toler":1,"tree":1,"trigger":1,"triplet":1,"trivial":1,"true":[0,1],"tupl":1,"two":1,"type":1,"u":[0,1],"u_max":0,"u_min":0,"ub":1,"unari":1,"uncertain":1,"union":[0,1],"union_of_mani":[0,1],"unsaf":0,"unus":1,"updat":0,"upper":1,"us":[0,1],"usag":0,"use_interval_contractor":1,"user":0,"util":0,"v":[0,1],"v0":1,"v1":1,"v2":1,"val":1,"valid":1,"valu":[0,1],"variabl":1,"vector":[0,1],"vector2d":0,"verbos":1,"verbose_interv":1,"verbosity_interv":1,"verif":0,"verifi":0,"vert":0,"vertex":[0,1],"vertic":1,"vi":1,"via":0,"vinod":1,"vn":1,"volum":1,"vpoli":1,"vrep_2_conzono":[0,1],"vrep_2_hybzono":[0,1],"vz2":1,"w":0,"w_map":0,"warm":1,"warm_start_param":1,"warmstartparam":[0,1],"we":0,"well":0,"when":[0,1],"where":[0,1],"whether":1,"which":1,"while":0,"whose":1,"wide":0,"width":1,"wish":0,"within":[0,1],"without":1,"work":[0,1],"wrap":1,"write":1,"writeabl":1,"x":[0,1],"x0":0,"x0_max":0,"x0_min":0,"x_lb":1,"x_ub":1,"xi":[0,1],"xi_b":[0,1],"xi_c":[0,1],"y":1,"y_max":1,"y_min":1,"you":[0,1],"your":0,"your_project":0,"z":[0,1],"z0":1,"z1":1,"z2":1,"z_list":1,"zero":1,"zero_one_form":1,"zi":1,"zn":1,"zono":[0,1],"zono_union_2_hybzono":[0,1],"zonolab":0,"zonoopt_instal":0,"zonoptr":0,"zonotop":1},"titles":["zonoopt documentation","ZonoOpt Module"],"titleterms":{"A":0,"also":0,"build":0,"constrain":0,"content":0,"document":0,"exampl":0,"featur":0,"hybrid":0,"instal":0,"modul":1,"note":0,"number":0,"refer":0,"see":0,"version":0,"zonoopt":[0,1],"zonotop":0}}) \ No newline at end of file diff --git a/docs/python/build/html/zonoopt.html b/docs/python/build/html/zonoopt.html index b6e64ef1..d7cb6828 100644 --- a/docs/python/build/html/zonoopt.html +++ b/docs/python/build/html/zonoopt.html @@ -1633,7 +1633,7 @@
-bounding_box(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x7d93ad3b0170>) zonoopt._core.Box
+bounding_box(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x76d83b7c0bf0>) zonoopt._core.Box

Computes a bounding box of the set object as a Box object.

Parameters:
@@ -1684,7 +1684,7 @@
-contains_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x7d93ad3a3f70>) bool
+contains_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x76d83b7bb5b0>) bool

Checks whether the point x is contained in the set object.

Parameters:
@@ -1989,7 +1989,7 @@
-is_empty(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x7d93ad3abaf0>) bool
+is_empty(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x76d83b7c32b0>) bool

Returns true if the set is provably empty, false otherwise.

Parameters:
@@ -2080,7 +2080,7 @@
-optimize_over(self: zonoopt._core.HybZono, P: scipy.sparse.csc_matrix[numpy.float64], q: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], c: typing.SupportsFloat | typing.SupportsIndex = 0, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x7d93ad3a37f0>) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']
+optimize_over(self: zonoopt._core.HybZono, P: scipy.sparse.csc_matrix[numpy.float64], q: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], c: typing.SupportsFloat | typing.SupportsIndex = 0, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x76d83b7badb0>) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

Solves optimization problem with quadratic objective over the current set

Parameters:
@@ -2105,7 +2105,7 @@
-project_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x7d93ad3a3830>) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']
+project_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x76d83b7c3030>) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']

Returns the projection of the point x onto the set object.

Parameters:
@@ -2170,7 +2170,7 @@
-support(self: zonoopt._core.HybZono, d: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x7d93ad3a3c30>) float
+support(self: zonoopt._core.HybZono, d: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = <zonoopt._core.WarmStartParams object at 0x76d83b7bb470>) float

Computes support function of the set in the direction d.

Parameters:
@@ -4525,7 +4525,7 @@
-zonoopt.plot(Z, ax=None, settings=OptSettings structure:    verbose: false   verbosity_interval: 100   t_max: 1.79769e+308   k_max_admm: 5000   rho: 10   eps_dual: 0.01   eps_prim: 0.001   k_inf_check: 10   inf_norm_conv: true   use_interval_contractor: true   contractor_iter: 1   search_mode: 0   polish: 1   eps_dual_search: 0.1   eps_prim_search: 0.01   eps_r: 0.01   eps_a: 0.1   k_max_bnb: 100000   n_threads_bnb: 4   n_threads_admm_fp: 3   single_threaded_admm_fp: false   max_nodes: 100000   contractor_tree_search_depth: 10   enable_perturb_admm_fp: true   k_max_admm_fp_ph1: 10000   k_max_admm_fp_ph2: 90000   cycle_detection_buffer_size: 20   eps_perturb: 0.001   k_restart: 5000   enable_rng_seed: false   rng_seed: 0   enable_restart_admm_fp: true, t_max=60.0, **kwargs)
+zonoopt.plot(Z, ax=None, settings=OptSettings structure:    verbose: false   verbosity_interval: 100   t_max: 1.79769e+308   k_max_admm: 5000   rho: 10   eps_dual: 0.01   eps_prim: 0.001   k_inf_check: 10   inf_norm_conv: true   use_interval_contractor: true   contractor_iter: 1   search_mode: 0   polish: 1   eps_dual_search: 0.1   eps_prim_search: 0.01   eps_r: 0.01   eps_a: 0.1   k_max_bnb: 100000   n_threads_bnb: 4   n_threads_admm_fp: 3   single_threaded_admm_fp: false   max_nodes: 100000   contractor_tree_search_depth: 10   enable_perturb_admm_fp: true   k_max_admm_fp_ph1: 10000   k_max_admm_fp_ph2: 90000   cycle_detection_buffer_size: 20   eps_perturb: 0.001   k_restart: 5000   enable_rng_seed: false   rng_seed: 0   enable_restart_admm_fp: true, t_max=60.0, enable_progress_bar=True, **kwargs)

Plots zonotopic set using matplotlib.

Parameters:
@@ -4534,6 +4534,7 @@
  • ax (matplotlib.axes.Axes, optional) – Axes to plot on. If None, current axes are used.

  • settings (OptSettings, optional) – Settings for the optimization. Defaults to OptSettings().

  • t_max (float, optional) – Maximum time to spend on finding vertices. Defaults to 60.0 seconds.

  • +
  • enable_progress_bar (bool, optional) – If True, will display a progress bar when plotting hybrid zonotopes.

  • **kwargs – Additional keyword arguments passed to the plotting function (e.g., color, alpha).

  • diff --git a/python/zonoopt/_core.pyi b/python/zonoopt/_core.pyi index f56c9324..d0155a7e 100644 --- a/python/zonoopt/_core.pyi +++ b/python/zonoopt/_core.pyi @@ -1518,7 +1518,7 @@ class HybZono: ''' def bounding_box(self, settings: OptSettings = ..., solution: OptSolution = ..., warm_start_params: WarmStartParams = ...) -> Box: - """bounding_box(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> zonoopt._core.Box + """bounding_box(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> zonoopt._core.Box Computes a bounding box of the set object as a Box object. @@ -1559,7 +1559,7 @@ class HybZono: ''' def contains_point(self, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, '[m, 1]'], settings: OptSettings = ..., solution: OptSolution = ..., warm_start_params: WarmStartParams = ...) -> bool: - '''contains_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> bool + '''contains_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> bool Checks whether the point x is contained in the set object. @@ -1786,7 +1786,7 @@ class HybZono: """ def is_empty(self, settings: OptSettings = ..., solution: OptSolution = ..., warm_start_params: WarmStartParams = ...) -> bool: - """is_empty(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> bool + """is_empty(self: zonoopt._core.HybZono, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> bool Returns true if the set is provably empty, false otherwise. @@ -1851,7 +1851,7 @@ class HybZono: """ def optimize_over(self, P: scipy.sparse.csc_matrix[numpy.float64], q: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, '[m, 1]'], c: typing.SupportsFloat | typing.SupportsIndex = ..., settings: OptSettings = ..., solution: OptSolution = ..., warm_start_params: WarmStartParams = ...) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']: - '''optimize_over(self: zonoopt._core.HybZono, P: scipy.sparse.csc_matrix[numpy.float64], q: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], c: typing.SupportsFloat | typing.SupportsIndex = 0, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], "[m, 1]"] + '''optimize_over(self: zonoopt._core.HybZono, P: scipy.sparse.csc_matrix[numpy.float64], q: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], c: typing.SupportsFloat | typing.SupportsIndex = 0, settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], "[m, 1]"] Solves optimization problem with quadratic objective over the current set @@ -1871,7 +1871,7 @@ class HybZono: ''' def project_point(self, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, '[m, 1]'], settings: OptSettings = ..., solution: OptSolution = ..., warm_start_params: WarmStartParams = ...) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']: - '''project_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], "[m, 1]"] + '''project_point(self: zonoopt._core.HybZono, x: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> typing.Annotated[numpy.typing.NDArray[numpy.float64], "[m, 1]"] Returns the projection of the point x onto the set object. @@ -1924,7 +1924,7 @@ class HybZono: ''' def support(self, d: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, '[m, 1]'], settings: OptSettings = ..., solution: OptSolution = ..., warm_start_params: WarmStartParams = ...) -> float: - '''support(self: zonoopt._core.HybZono, d: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> float + '''support(self: zonoopt._core.HybZono, d: typing.Annotated[numpy.typing.ArrayLike, numpy.float64, "[m, 1]"], settings: zonoopt._core.OptSettings = OptSettings structure: verbose: false verbosity_interval: 100 t_max: 1.79769e+308 k_max_admm: 5000 rho: 10 eps_dual: 0.01 eps_prim: 0.001 k_inf_check: 10 inf_norm_conv: true use_interval_contractor: true contractor_iter: 1 search_mode: 0 polish: 1 eps_dual_search: 0.1 eps_prim_search: 0.01 eps_r: 0.01 eps_a: 0.1 k_max_bnb: 100000 n_threads_bnb: 4 n_threads_admm_fp: 3 single_threaded_admm_fp: false max_nodes: 100000 contractor_tree_search_depth: 10 enable_perturb_admm_fp: true k_max_admm_fp_ph1: 10000 k_max_admm_fp_ph2: 90000 cycle_detection_buffer_size: 20 eps_perturb: 0.001 k_restart: 5000 enable_rng_seed: false rng_seed: 0 enable_restart_admm_fp: true, solution: zonoopt._core.OptSolution = None, warm_start_params: zonoopt._core.WarmStartParams = ) -> float Computes support function of the set in the direction d. diff --git a/python/zonoopt/zono_plot.py b/python/zonoopt/zono_plot.py index 4698d26d..b8efcf63 100644 --- a/python/zonoopt/zono_plot.py +++ b/python/zonoopt/zono_plot.py @@ -181,7 +181,7 @@ def _get_conzono_vertices(Z, t_max=60.0): else: raise ValueError('get_vertices unsupported data type') -def plot(Z, ax=None, settings=OptSettings(), t_max=60.0, **kwargs): +def plot(Z, ax=None, settings=OptSettings(), t_max=60.0, enable_progress_bar=True, **kwargs): """ Plots zonotopic set using matplotlib. @@ -190,6 +190,7 @@ def plot(Z, ax=None, settings=OptSettings(), t_max=60.0, **kwargs): ax (matplotlib.axes.Axes, optional): Axes to plot on. If None, current axes are used. settings (OptSettings, optional): Settings for the optimization. Defaults to OptSettings(). t_max (float, optional): Maximum time to spend on finding vertices. Defaults to 60.0 seconds. + enable_progress_bar (bool, optional): If True, will display a progress bar when plotting hybrid zonotopes. **kwargs: Additional keyword arguments passed to the plotting function (e.g., color, alpha). Returns: @@ -220,9 +221,13 @@ def plot(Z, ax=None, settings=OptSettings(), t_max=60.0, **kwargs): return [] objs = [] - pbar = tqdm(leaves) + if enable_progress_bar: + pbar = tqdm(leaves) + else: + pbar = leaves for leaf in pbar: - pbar.set_description('Plotting HybZono leaves') + if enable_progress_bar: + pbar.set_description('Plotting HybZono leaves') t = time.time() - t0 if t > t_max: warnings.warn('Plotting time limit reached, terminating early.')