27inline abstract1::abstract1(ap_abstract1_t x) : a(x)
30inline abstract1::abstract1(manager &m,
const environment& e, top x)
32 a = ap_abstract1_top(m.get_ap_manager_t(),
33 const_cast<ap_environment_t*
>(e.get_ap_environment_t()));
34 m.raise(
"apron::abstract1::abstract1(manager &, const environment&, top)",a);
37inline abstract1::abstract1(manager &m,
const environment& e, bottom x)
39 a = ap_abstract1_bottom(m.get_ap_manager_t(),
40 const_cast<ap_environment_t*
>(e.get_ap_environment_t()));
41 m.raise(
"apron::abstract1::abstract1(manager &, const environment&, bottom)",a);
44inline abstract1::abstract1(manager &m,
const abstract1& t)
46 a = ap_abstract1_copy(m.get_ap_manager_t(),
const_cast<ap_abstract1_t*
>(&t.a));
47 m.raise(
"apron::abstract1::abstract1(manager &, const abstract1&)",a);
50inline abstract1::abstract1(manager &m,
const environment& e,
const abstract0& t)
52 a.env = ap_environment_copy(
const_cast<ap_environment_t*
>(e.get_ap_environment_t()));
53 a.abstract0 = ap_abstract0_copy(m.get_ap_manager_t(),
54 const_cast<ap_abstract0_t*
>(t.get_ap_abstract0_t()));
55 m.raise(
"apron::abstract1::abstract1(manager &, const abstract1&)",a);
58inline abstract1::abstract1(manager &m,
const environment& e,
const var v[],
const interval_array& x)
60 a = ap_abstract1_of_box(m.get_ap_manager_t(),
61 const_cast<ap_environment_t*
>(e.get_ap_environment_t()),
62 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
63 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()),
65 m.raise(
"apron::abstract1::abstract1(manager &, const environment&, const var[], const interval_array&)",a);
68inline abstract1::abstract1(manager &m,
const environment& e,
const std::vector<var>& v,
const interval_array& x)
70 if (v.size()!=x.size())
71 throw std::invalid_argument(
"apron::abstract1::abstract1(manager &, const environment&, const std::vector<var>&, const interval_array&): different array sizes");
72 ap_var_t vv[v.size()];
73 for (
size_t i=0;i<v.size();i++) vv[i] = v[i].get_ap_var_t();
74 a = ap_abstract1_of_box(m.get_ap_manager_t(),
75 const_cast<ap_environment_t*
>(e.get_ap_environment_t()),
77 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()),
79 m.raise(
"apron::abstract1::abstract1(manager &, const environment&, const std::vector<var>&, const interval_array&)",a);
82inline abstract1::abstract1(manager &m,
const lincons1_array& x)
84 a = ap_abstract1_of_lincons_array(m.get_ap_manager_t(),
85 const_cast<ap_environment_t*
>(x.get_environment().get_ap_environment_t()),
86 const_cast<ap_lincons1_array_t*
>(x.get_ap_lincons1_array_t()));
87 m.raise(
"apron::abstract1::abstract1(manager &, const lincons1_array&)",a);
90inline abstract1::abstract1(manager &m,
const tcons1_array& x)
92 a = ap_abstract1_of_tcons_array(m.get_ap_manager_t(),
93 const_cast<ap_environment_t*
>(x.get_environment().get_ap_environment_t()),
94 const_cast<ap_tcons1_array_t*
>(x.get_ap_tcons1_array_t()));
95 m.raise(
"apron::abstract1::abstract1(manager &, const tcons1_array&)",a);
98inline abstract1::abstract1(
const abstract1& t)
100 a = ap_abstract1_copy(t.a.abstract0->man,
const_cast<ap_abstract1_t*
>(&t.a));
101 manager::raise(a.abstract0->man,
"apron::abstract1::abstract1(abstract1&)",a);
108inline abstract1::~abstract1()
110 if (a.abstract0) ap_abstract1_clear(a.abstract0->man, &a);
114inline void abstract1::free(manager& m)
116 if (a.abstract0) ap_abstract1_clear(m.get_ap_manager_t(), &a);
124inline abstract1& abstract1::operator=(
const abstract1& t)
127 ap_abstract1_t r = ap_abstract1_copy(a.abstract0->man,
128 const_cast<ap_abstract1_t*
>(&t.a));
129 manager::raise(a.abstract0->man,
"apron::abstract1::operator=(const abstract1&)",r);
130 ap_abstract1_clear(a.abstract0->man, &a);
136inline abstract1& abstract1::operator=(top t)
138 ap_abstract1_t r = ap_abstract1_top(a.abstract0->man, a.env);
139 manager::raise(a.abstract0->man,
"apron::abstract1::operator=(top)",r);
140 ap_abstract1_clear(a.abstract0->man, &a);
145inline abstract1& abstract1::operator=(bottom t)
147 ap_abstract1_t r = ap_abstract1_bottom(a.abstract0->man, a.env);
148 manager::raise(a.abstract0->man,
"apron::abstract1::operator=(bottom)",r);
149 ap_abstract1_clear(a.abstract0->man, &a);
154inline abstract1& abstract1::operator=(
const interval_array& x)
156 ap_dimension_t d = ap_abstract0_dimension(a.abstract0->man, a.abstract0);
157 if (x.size()<d.intdim+d.realdim)
158 throw std::invalid_argument(
"apron::abstract1::operator=(const interval_array&) array too short");
159 ap_abstract0_t* r = ap_abstract0_of_box(a.abstract0->man, d.intdim, d.realdim,
160 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()));
161 manager::raise(a.abstract0->man,
"apron::abstract1::operator=(const interval_array&)",r);
162 ap_abstract0_free(a.abstract0->man, a.abstract0);
167inline abstract1& abstract1::operator=(
const lincons1_array& x)
170 ap_abstract1_of_lincons_array(a.abstract0->man,
171 const_cast<ap_environment_t*
>(x.get_environment().get_ap_environment_t()),
172 const_cast<ap_lincons1_array_t*
>(x.get_ap_lincons1_array_t()));
173 manager::raise(a.abstract0->man,
"apron::abstract1::operator=(const lincons1_array&)",r);
174 ap_abstract1_clear(a.abstract0->man, &a);
179inline abstract1& abstract1::operator=(
const tcons1_array& x)
182 ap_abstract1_of_tcons_array(a.abstract0->man,
183 const_cast<ap_environment_t*
>(x.get_environment().get_ap_environment_t()),
184 const_cast<ap_tcons1_array_t*
>(x.get_ap_tcons1_array_t()));
185 manager::raise(a.abstract0->man,
"apron::abstract1::operator=(const tcons1_array&)",r);
186 ap_abstract1_clear(a.abstract0->man, &a);
192inline abstract1& abstract1::set(manager& m,
const abstract1& x)
195 ap_abstract1_t r = ap_abstract1_copy(m.get_ap_manager_t(),
196 const_cast<ap_abstract1_t*
>(&x.a));
197 m.raise(
"apron::abstract1::set(manager&, abstract1&)",r);
198 ap_abstract1_clear(m.get_ap_manager_t(), &a);
205inline abstract1& abstract1::set(manager& m, top t)
207 ap_abstract1_t r = ap_abstract1_top(m.get_ap_manager_t(), a.env);
208 m.raise(
"apron::abstract1::set(manager&, top)",r);
209 ap_abstract1_clear(m.get_ap_manager_t(), &a);
214inline abstract1& abstract1::set(manager& m,
const environment& e, top t)
216 ap_abstract1_t r = ap_abstract1_top(m.get_ap_manager_t(),
217 const_cast<ap_environment_t*
>(e.get_ap_environment_t()));
218 m.raise(
"apron::abstract1::set(manager&, const environment&, top)",r);
219 ap_abstract1_clear(m.get_ap_manager_t(), &a);
224inline abstract1& abstract1::set(manager& m, bottom t)
226 ap_abstract1_t r = ap_abstract1_bottom(m.get_ap_manager_t(), a.env);
227 m.raise(
"apron::abstract1::set(manager&, bottom)",r);
228 ap_abstract1_clear(m.get_ap_manager_t(), &a);
233inline abstract1& abstract1::set(manager& m,
const environment& e, bottom t)
235 ap_abstract1_t r = ap_abstract1_bottom(m.get_ap_manager_t(),
236 const_cast<ap_environment_t*
>(e.get_ap_environment_t()));
237 m.raise(
"apron::abstract1::set(manager&, const environment&, bottom)",r);
238 ap_abstract1_clear(m.get_ap_manager_t(), &a);
243inline abstract1& abstract1::set(manager& m,
const interval_array& x)
245 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a.abstract0);
246 if (x.size()<d.intdim+d.realdim)
247 throw std::invalid_argument(
"apron::abstract1::set(manager&, const interval_array&) array too short");
248 ap_abstract0_t* r = ap_abstract0_of_box(m.get_ap_manager_t(), d.intdim, d.realdim,
249 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()));
250 m.raise(
"apron::abstract1::operator=(const interval_array&)",r);
251 ap_abstract0_free(m.get_ap_manager_t(), a.abstract0);
257inline abstract1& abstract1::set(manager &m,
const environment& e,
const var v[],
const interval_array& x)
260 ap_abstract1_of_box(m.get_ap_manager_t(),
261 const_cast<ap_environment_t*
>(e.get_ap_environment_t()),
262 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
263 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()),
265 m.raise(
"apron::abstract1::set(manager &, const environment&, const var[], const interval_array&)",r);
266 ap_abstract1_clear(m.get_ap_manager_t(),&a);
271inline abstract1& abstract1::set(manager &m,
const environment& e,
const std::vector<var>& v,
const interval_array& x)
273 if (v.size()!=x.size())
274 throw std::invalid_argument(
"apron::abstract1::abstract1(manager &, const environment&, const std::vector<var>&, const interval_array&): different array sizes");
275 ap_var_t vv[v.size()];
276 for (
size_t i=0;i<v.size();i++) vv[i] = v[i].get_ap_var_t();
278 ap_abstract1_of_box(m.get_ap_manager_t(),
279 const_cast<ap_environment_t*
>(e.get_ap_environment_t()),
281 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()),
283 m.raise(
"apron::abstract1::set(manager &, const environment&, const std::vector<var>&, const interval_array&)",r);
284 ap_abstract1_clear(m.get_ap_manager_t(), &a);
289inline abstract1& abstract1::set(manager& m,
const lincons1_array& x)
292 ap_abstract1_of_lincons_array(m.get_ap_manager_t(),
293 const_cast<ap_environment_t*
>(x.get_environment().get_ap_environment_t()),
294 const_cast<ap_lincons1_array_t*
>(x.get_ap_lincons1_array_t()));
295 m.raise(
"apron::abstract1::set(manager &, const lincons1_array&)",r);
296 ap_abstract1_clear(m.get_ap_manager_t(), &a);
301inline abstract1& abstract1::set(manager& m,
const tcons1_array& x)
304 ap_abstract1_of_tcons_array(m.get_ap_manager_t(),
305 const_cast<ap_environment_t*
>(x.get_environment().get_ap_environment_t()),
306 const_cast<ap_tcons1_array_t*
>(x.get_ap_tcons1_array_t()));
307 m.raise(
"apron::abstract1::set(manager &, const tcons1_array&)",r);
308 ap_abstract1_clear(m.get_ap_manager_t(), &a);
317inline abstract1& abstract1::minimize(manager& m)
319 ap_abstract1_minimize(m.get_ap_manager_t(), &a);
320 m.raise(
"apron::abstract1::minimize(manager &)");
324inline abstract1& abstract1::canonicalize(manager& m)
326 ap_abstract1_canonicalize(m.get_ap_manager_t(), &a);
327 m.raise(
"apron::abstract1::canonicalize(manager &)");
331inline abstract1& abstract1::approximate(manager& m,
int algorithm)
333 ap_abstract1_approximate(m.get_ap_manager_t(), &a, algorithm);
334 m.raise(
"apron::abstract1::approximate(manager &, int)");
342inline void abstract1::print(manager& m, FILE* stream)
const
344 ap_abstract1_fprint(stream, m.get_ap_manager_t(),
const_cast<ap_abstract1_t*
>(&a));
345 m.raise(
"apron::abstract1::print(manager&, FILE*)");
348inline void printdiff(manager& m,
const abstract1& x,
const abstract1& y, FILE* stream = stdout)
350 ap_abstract1_fprintdiff(stream, m.get_ap_manager_t(),
351 const_cast<ap_abstract1_t*
>(&x.a),
352 const_cast<ap_abstract1_t*
>(&y.a));
353 m.raise(
"apron::printdiff(manager&, const abstract1&, const abstract1&, FILE*)");
356inline void abstract1::dump(manager& m, FILE* stream)
const
358 ap_abstract1_fdump(stream, m.get_ap_manager_t(),
const_cast<ap_abstract1_t*
>(&a));
359 m.raise(
"apron::abstract1::dump(manager&, FILE*)");
362inline std::ostream&
operator<< (std::ostream& os,
const abstract1& s)
364 manager m = s.get_manager();
365 if (s.is_bottom(m))
return os <<
"bottom";
366 if (s.is_top(m))
return os <<
"top";
367 return os << s.to_lincons_array(m);
374inline std::string* abstract1::serialize(manager& m)
const
376 ap_membuf_t x = ap_abstract1_serialize_raw(m.get_ap_manager_t(),
377 const_cast<ap_abstract1_t*
>(&a));
378 m.raise(
"apron::abstract1::serialize_raw(manager&)");
379 std::string* s =
new std::string((
char*)x.ptr, x.size);
384inline abstract1&
deserialize(manager& m, abstract1& dst,
const std::string& s,
size_t* eaten = NULL)
388 ap_abstract1_deserialize_raw(m.get_ap_manager_t(),
const_cast<char*
>(s.data()), &x);
389 m.raise(
"apron::deserialize_raw(manager&, abstract1&, const std::string&, size_t*)",r);
390 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
392 if (eaten) *eaten = x;
400inline manager abstract1::get_manager()
const
402 return ap_manager_copy(ap_abstract0_manager(
const_cast<ap_abstract0_t*
>(a.abstract0)));
405inline environment abstract1::get_environment()
const
407 return ap_environment_copy(
const_cast<ap_environment_t*
>(a.env));
410inline abstract0& abstract1::get_abstract0()
412 return reinterpret_cast<abstract0&
>(a.abstract0);
415inline const abstract0& abstract1::get_abstract0()
const
417 return reinterpret_cast<const abstract0&
>(a.abstract0);
420inline size_t abstract1::size(manager& m)
const
422 size_t sz = ap_abstract1_size(m.get_ap_manager_t(),
423 const_cast<ap_abstract1_t*
>(&a));
424 m.raise(
"apron::abstract1::get_size(manager&)");
434inline bool abstract1::is_bottom(manager& m)
const
436 bool r = ap_abstract1_is_bottom(m.get_ap_manager_t(),
437 const_cast<ap_abstract1_t*
>(&a));
438 m.raise(
"apron::abstract1::is_bottom(manager&)");
442inline bool abstract1::is_top(manager& m)
const
444 bool r = ap_abstract1_is_top(m.get_ap_manager_t(),
445 const_cast<ap_abstract1_t*
>(&a));
446 m.raise(
"apron::abstract1::is_top(manager&)");
450inline bool abstract1::is_eq(manager& m,
const abstract1& x)
const
452 bool r = ap_abstract1_is_eq(m.get_ap_manager_t(),
453 const_cast<ap_abstract1_t*
>(&a),
454 const_cast<ap_abstract1_t*
>(&x.a));
455 m.raise(
"apron::abstract1::is_eq(manager&, const abstract&)");
459inline bool abstract1::is_leq(manager& m,
const abstract1& x)
const
461 bool r = ap_abstract1_is_leq(m.get_ap_manager_t(),
462 const_cast<ap_abstract1_t*
>(&a),
463 const_cast<ap_abstract1_t*
>(&x.a));
464 m.raise(
"apron::abstract1::is_leq(manager&, const abstract&)");
468inline bool abstract1::sat(manager& m,
const lincons1& l)
const
470 bool r = ap_abstract1_sat_lincons(m.get_ap_manager_t(),
471 const_cast<ap_abstract1_t*
>(&a),
472 const_cast<ap_lincons1_t*
>(l.get_ap_lincons1_t()));
473 m.raise(
"apron::abstract1::sat(manager&, const lincons1&)");
477inline bool abstract1::sat(manager& m,
const tcons1& l)
const
479 bool r = ap_abstract1_sat_tcons(m.get_ap_manager_t(),
480 const_cast<ap_abstract1_t*
>(&a),
481 const_cast<ap_tcons1_t*
>(l.get_ap_tcons1_t()));
482 m.raise(
"apron::abstract1::sat(manager&, const tcons1&)");
486inline bool abstract1::sat(manager& m,
const var& v,
const interval& i)
const
488 bool r = ap_abstract1_sat_interval(m.get_ap_manager_t(),
489 const_cast<ap_abstract1_t*
>(&a),
491 const_cast<ap_interval_t*
>(i.get_ap_interval_t()));
492 m.raise(
"apron::abstract1::sat(manager&, const var&, const interval&)");
496inline bool abstract1::is_variable_unconstrained(manager& m,
const var& v)
const
498 bool r = ap_abstract1_is_variable_unconstrained(m.get_ap_manager_t(),
499 const_cast<ap_abstract1_t*
>(&a),
501 m.raise(
"apron::abstract1::is_variable_unconstrained(manager&, const var&)");
506inline bool operator== (
const abstract1& x,
const abstract1& y)
508 bool r = ap_abstract1_is_eq(x.a.abstract0->man,
509 const_cast<ap_abstract1_t*
>(&x.a),
510 const_cast<ap_abstract1_t*
>(&y.a));
511 manager::raise(x.a.abstract0->man,
"apron::operator==(const abstract1&, const abstract1&)");
515inline bool operator!= (
const abstract1& x,
const abstract1& y)
520inline bool operator<= (
const abstract1& x,
const abstract1& y)
522 bool r = ap_abstract1_is_leq(x.a.abstract0->man,
523 const_cast<ap_abstract1_t*
>(&x.a),
524 const_cast<ap_abstract1_t*
>(&y.a));
525 manager::raise(x.a.abstract0->man,
"apron::operator<=(const abstract1&, const abstract1&)");
529inline bool operator>= (
const abstract1& x,
const abstract1& y)
534inline bool operator> (
const abstract1& x,
const abstract1& y)
539inline bool operator< (
const abstract1& x,
const abstract1& y)
549inline interval abstract1::bound(manager& m,
const linexpr1& l)
const
552 ap_abstract1_bound_linexpr(m.get_ap_manager_t(),
553 const_cast<ap_abstract1_t*
>(&a),
554 const_cast<ap_linexpr1_t*
>(l.get_ap_linexpr1_t()));
555 m.raise(
"apron::abstract1::bound(manager&, const linexpr1&)");
559inline interval abstract1::bound(manager& m,
const texpr1& l)
const
562 ap_abstract1_bound_texpr(m.get_ap_manager_t(),
563 const_cast<ap_abstract1_t*
>(&a),
564 const_cast<ap_texpr1_t*
>(l.get_ap_texpr1_t()));
565 if (m.exception_raised()) ap_interval_free(r);
566 m.raise(
"apron::abstract1::bound(manager&, const texpr1&)");
570inline interval abstract1::bound(manager& m,
const var& d)
const
573 ap_abstract1_bound_variable(m.get_ap_manager_t(),
574 const_cast<ap_abstract1_t*
>(&a),
576 if (m.exception_raised()) ap_interval_free(r);
577 m.raise(
"apron::abstract1::bound(manager&, ap_dim_t)");
581inline interval_array abstract1::to_box(manager& m)
const
584 ap_abstract1_to_box(m.get_ap_manager_t(),
585 const_cast<ap_abstract1_t*
>(&a));
586 if (m.exception_raised()) ap_box1_clear(&r);
587 m.raise(
"apron::abstract1::to_box(manager&)");
588 size_t sz = r.env->intdim + r.env->realdim;
589 ap_environment_free(r.env);
590 return interval_array(sz, r.p);
593inline lincons1_array abstract1::to_lincons_array(manager& m)
const
595 ap_lincons1_array_t r =
596 ap_abstract1_to_lincons_array(m.get_ap_manager_t(),
597 const_cast<ap_abstract1_t*
>(&a));
598 if (m.exception_raised()) ap_lincons1_array_clear(&r);
599 m.raise(
"apron::abstract1::to_lincons_array(manager&)");
603inline tcons1_array abstract1::to_tcons_array(manager& m)
const
605 ap_tcons1_array_t r =
606 ap_abstract1_to_tcons_array(m.get_ap_manager_t(),
607 const_cast<ap_abstract1_t*
>(&a));
608 if (m.exception_raised()) ap_tcons1_array_clear(&r);
609 m.raise(
"apron::abstract1::to_tcons_array(manager&)");
613inline generator1_array abstract1::to_generator_array(manager& m)
const
615 ap_generator1_array_t r =
616 ap_abstract1_to_generator_array(m.get_ap_manager_t(),
617 const_cast<ap_abstract1_t*
>(&a));
618 if (m.exception_raised()) ap_generator1_array_clear(&r);
619 m.raise(
"apron::abstract1::to_generator_array(manager&)");
627inline abstract1& abstract1::unify(manager& m,
const abstract1& y)
629 a = ap_abstract1_unify(m.get_ap_manager_t(),
true,
630 const_cast<ap_abstract1_t*
>(&a),
631 const_cast<ap_abstract1_t*
>(&y.a));
632 m.raise(
"apron::abstract1::unify(manager&, const abstract1&)");
636inline abstract1&
unify(manager& m, abstract1& dst,
const abstract1& x,
const abstract1& y)
639 ap_abstract1_unify(m.get_ap_manager_t(),
false,
640 const_cast<ap_abstract1_t*
>(&x.a),
641 const_cast<ap_abstract1_t*
>(&y.a));
642 m.raise(
"apron::unify(manager&, abstract1&, const abstract1&, const abstract1&)",r);
643 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
648inline abstract1& abstract1::meet(manager& m,
const abstract1& y)
650 a = ap_abstract1_meet(m.get_ap_manager_t(),
true,
651 const_cast<ap_abstract1_t*
>(&a),
652 const_cast<ap_abstract1_t*
>(&y.a));
653 m.raise(
"apron::abstract1::meet(manager&, const abstract1&)");
657inline abstract1&
meet(manager& m, abstract1& dst,
const abstract1& x,
const abstract1& y)
660 ap_abstract1_meet(m.get_ap_manager_t(),
false,
661 const_cast<ap_abstract1_t*
>(&x.a),
662 const_cast<ap_abstract1_t*
>(&y.a));
663 m.raise(
"apron::meet(manager&, abstract1&, const abstract1&, const abstract1&)",r);
664 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
669inline abstract1&
meet(manager& m, abstract1& dst,
const std::vector<const abstract1*>& x)
671 ap_abstract1_t xx[x.size()];
672 for (
size_t i=0;i<x.size();i++)
673 xx[i] = *(x[i]->get_ap_abstract1_t());
675 ap_abstract1_meet_array(m.get_ap_manager_t(), xx, x.size());
676 m.raise(
"apron::meet(manager&, abstract1&, const std::vector<const abstract1*>&)",r);
677 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
682inline abstract1&
meet(manager& m, abstract1& dst,
size_t sz,
const abstract1 *
const x[])
684 ap_abstract1_t xx[sz];
685 for (
size_t i=0;i<sz;i++)
686 xx[i] = *(x[i]->get_ap_abstract1_t());
688 ap_abstract1_meet_array(m.get_ap_manager_t(), xx, sz);
689 m.raise(
"apron::meet(manager&, abstract1&, size_t, const abstract1 * const [])",r);
690 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
695inline abstract1& abstract1::join(manager& m,
const abstract1& y)
697 a = ap_abstract1_join(m.get_ap_manager_t(),
true,
698 const_cast<ap_abstract1_t*
>(&a),
699 const_cast<ap_abstract1_t*
>(&y.a));
700 m.raise(
"apron::abstract1::join(manager&, const abstract1&)");
704inline abstract1&
join(manager& m, abstract1& dst,
const abstract1& x,
const abstract1& y)
707 ap_abstract1_join(m.get_ap_manager_t(),
false,
708 const_cast<ap_abstract1_t*
>(&x.a),
709 const_cast<ap_abstract1_t*
>(&y.a));
710 m.raise(
"apron::join(manager&, abstract1&, const abstract1&, const abstract1&)",r);
711 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
716inline abstract1&
join(manager& m, abstract1& dst,
size_t sz,
const abstract1 *
const x[])
718 ap_abstract1_t xx[sz];
719 for (
size_t i=0;i<sz;i++)
720 xx[i] = *(x[i]->get_ap_abstract1_t());
722 ap_abstract1_join_array(m.get_ap_manager_t(), xx, sz);
723 m.raise(
"apron::join(manager&, abstract1&, size_t, const abstract1 * const [])",r);
724 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
729inline abstract1&
join(manager& m, abstract1& dst,
const std::vector<const abstract1*>& x)
731 ap_abstract1_t xx[x.size()];
732 for (
size_t i=0;i<x.size();i++)
733 xx[i] = *(x[i]->get_ap_abstract1_t());
735 ap_abstract1_join_array(m.get_ap_manager_t(), xx, x.size());
736 m.raise(
"apron::join(manager&, abstract1&, const std::vector<const abstract1*>&)",r);
737 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
742inline abstract1& abstract1::meet(manager& m,
const lincons1_array& y)
745 ap_abstract1_meet_lincons_array(m.get_ap_manager_t(),
true,
746 const_cast<ap_abstract1_t*
>(&a),
747 const_cast<ap_lincons1_array_t*
>(y.get_ap_lincons1_array_t()));
748 m.raise(
"apron::abstract1::meet(manager&, const lincons1_array&)");
752inline abstract1&
meet(manager& m, abstract1& dst,
const abstract1& x,
const lincons1_array& y)
755 ap_abstract1_meet_lincons_array(m.get_ap_manager_t(),
false,
756 const_cast<ap_abstract1_t*
>(&x.a),
757 const_cast<ap_lincons1_array_t*
>(y.get_ap_lincons1_array_t()));
758 m.raise(
"apron::meet(manager&, abstract1&, const abstract1&, const lincons1_array&)",r);
759 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
765inline abstract1& abstract1::meet(manager& m,
const tcons1_array& y)
767 a = ap_abstract1_meet_tcons_array(m.get_ap_manager_t(),
true,
768 const_cast<ap_abstract1_t*
>(&a),
769 const_cast<ap_tcons1_array_t*
>(y.get_ap_tcons1_array_t()));
770 m.raise(
"apron::abstract1::meet(manager&, const tcons1_array&)");
774inline abstract1&
meet(manager& m, abstract1& dst,
const abstract1& x,
const tcons1_array& y)
777 ap_abstract1_meet_tcons_array(m.get_ap_manager_t(),
false,
778 const_cast<ap_abstract1_t*
>(&x.a),
779 const_cast<ap_tcons1_array_t*
>(y.get_ap_tcons1_array_t()));
780 m.raise(
"apron::meet(manager&, abstract1&, const abstract1&, const tcons1_array&)",r);
781 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
788inline abstract1& abstract1::add_rays(manager& m,
const generator1_array& y)
791 ap_abstract1_add_ray_array(m.get_ap_manager_t(),
true,
792 const_cast<ap_abstract1_t*
>(&a),
793 const_cast<ap_generator1_array_t*
>(y.get_ap_generator1_array_t()));
794 m.raise(
"apron::abstract1::add_rays(manager&, const generator1_array&)");
798inline abstract1&
add_rays(manager& m, abstract1& dst,
const abstract1& x,
const generator1_array& y)
801 ap_abstract1_add_ray_array(m.get_ap_manager_t(),
false,
802 const_cast<ap_abstract1_t*
>(&x.a),
803 const_cast<ap_generator1_array_t*
>(y.get_ap_generator1_array_t()));
804 m.raise(
"apron::add_rays(manager&, abstract1&, const abstract1&, const generator1_array&)",r);
805 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
812inline abstract1& abstract1::operator*=(
const abstract1& y)
815 ap_abstract1_meet(a.abstract0->man,
true,
816 const_cast<ap_abstract1_t*
>(&a),
817 const_cast<ap_abstract1_t*
>(&y.a));
818 manager::raise(a.abstract0->man,
"apron::abstract1::operator*=(const abstract1&)");
822inline abstract1& abstract1::operator+=(
const abstract1& y)
825 ap_abstract1_join(a.abstract0->man,
true,
826 const_cast<ap_abstract1_t*
>(&a),
827 const_cast<ap_abstract1_t*
>(&y.a));
828 manager::raise(a.abstract0->man,
"apron::abstract1::operator+=(const abstract1&)");
832inline abstract1& abstract1::operator*=(
const lincons1_array& y)
835 ap_abstract1_meet_lincons_array(a.abstract0->man,
true,
836 const_cast<ap_abstract1_t*
>(&a),
837 const_cast<ap_lincons1_array_t*
>(y.get_ap_lincons1_array_t()));
838 manager::raise(a.abstract0->man,
"apron::abstract1::operator*=(const lincons1_array&)");
842inline abstract1& abstract1::operator*=(
const tcons1_array& y)
845 ap_abstract1_meet_tcons_array(a.abstract0->man,
true,
846 const_cast<ap_abstract1_t*
>(&a),
847 const_cast<ap_tcons1_array_t*
>(y.get_ap_tcons1_array_t()));
848 manager::raise(a.abstract0->man,
"apron::abstract1::operator*=(const tcons1_array&)");
852inline abstract1& abstract1::operator+=(
const generator1_array& y)
855 ap_abstract1_add_ray_array(a.abstract0->man,
true,
856 const_cast<ap_abstract1_t*
>(&a),
857 const_cast<ap_generator1_array_t*
>(y.get_ap_generator1_array_t()));
858 manager::raise(a.abstract0->man,
"apron::abstract1::operator+=(const generator1_array&)");
869 ap_abstract1_t* r =
const_cast<ap_abstract1_t*
>(i.get_ap_abstract1_t());
870 if (r->abstract0)
return r;
874inline abstract1& abstract1::assign(manager& m,
const var& v,
const linexpr1& l,
const abstract1& inter)
876 a = ap_abstract1_assign_linexpr_array(m.get_ap_manager_t(),
true, &a,
877 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
878 const_cast<ap_linexpr1_t*
>(l.get_ap_linexpr1_t()),
881 m.raise(
"apron::abstract1::assign(manager&, size_t size, const var&, const linexpr1&, const abstract1&)");
885inline abstract1& abstract1::assign(manager& m,
size_t size,
const var v[],
const linexpr1 *
const l[],
const abstract1& inter)
887 ap_linexpr1_t ll[size];
888 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_linexpr1_t());
890 ap_abstract1_assign_linexpr_array(m.get_ap_manager_t(),
true, &a,
891 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
894 m.raise(
"apron::abstract1::assign(manager&, size_t size, const var[], const linexpr1 * const [], const abstract1&)");
899inline abstract1& abstract1::assign(manager& m,
const std::vector<var>& v,
const std::vector<const linexpr1*>& l,
const abstract1& inter)
901 if (l.size()!=v.size())
902 throw std::invalid_argument(
"apron::abstract1::assign(manager&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&) vectors have different size");
903 ap_linexpr1_t ll[l.size()];
904 ap_var_t vv[v.size()];
905 for (
size_t i=0;i<l.size();i++) {
906 ll[i] = *(l[i]->get_ap_linexpr1_t());
907 vv[i] = v[i].get_ap_var_t();
910 ap_abstract1_assign_linexpr_array(m.get_ap_manager_t(),
true, &a,
913 m.raise(
"apron::abstract1::assign(manager&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&)");
918inline abstract1&
assign(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
const linexpr1& l,
const abstract1& inter = abstract1::null)
921 ap_abstract1_assign_linexpr_array(m.get_ap_manager_t(),
false,
922 const_cast<ap_abstract1_t*
>(&src.a),
923 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
924 const_cast<ap_linexpr1_t*
>(l.get_ap_linexpr1_t()),
927 m.raise(
"apron::assign(manager&, abstract1&, const abstract1&, const var&, const linexpr1&, const abstract1&)",r);
928 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
933inline abstract1&
assign(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var v[],
const linexpr1 *
const l[],
const abstract1& inter = abstract1::null)
935 ap_linexpr1_t ll[size];
936 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_linexpr1_t());
938 ap_abstract1_assign_linexpr_array(m.get_ap_manager_t(),
false,
939 const_cast<ap_abstract1_t*
>(&src.a),
940 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
943 m.raise(
"apron::assign((manager&, abstract1&, const abstract1&, size_t size, const var[], const linexpr1 * const [], const abstract1&)",r);
944 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
949inline abstract1&
assign(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& v,
const std::vector<const linexpr1*>& l,
const abstract1& inter = abstract1::null)
951 if (l.size()!=v.size())
952 throw std::invalid_argument(
"apron::assign(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&) vectors have different size");
953 ap_linexpr1_t ll[l.size()];
954 ap_var_t vv[v.size()];
955 for (
size_t i=0;i<l.size();i++) {
956 ll[i] = *(l[i]->get_ap_linexpr1_t());
957 vv[i] = v[i].get_ap_var_t();
960 ap_abstract1_assign_linexpr_array(m.get_ap_manager_t(),
false,
961 const_cast<ap_abstract1_t*
>(&src.a),
964 m.raise(
"apron::assign(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&)",r);
965 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
974inline abstract1& abstract1::assign(manager& m,
const var& v,
const texpr1& l,
const abstract1& inter)
976 a = ap_abstract1_assign_texpr_array(m.get_ap_manager_t(),
true, &a,
977 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
978 const_cast<ap_texpr1_t*
>(l.get_ap_texpr1_t()),
981 m.raise(
"apron::abstract1::assign(manager&, size_t size, const var&, const texpr1&, const abstract1&)");
985inline abstract1& abstract1::assign(manager& m,
size_t size,
const var v[],
const texpr1 *
const l[],
const abstract1& inter)
987 ap_texpr1_t ll[size];
988 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_texpr1_t());
989 a = ap_abstract1_assign_texpr_array(m.get_ap_manager_t(),
true, &a,
990 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
993 m.raise(
"apron::abstract1::assign(manager&, size_t size, const var[], const texpr1 * const [], const abstract1&)");
997inline abstract1& abstract1::assign(manager& m,
const std::vector<var>& v,
const std::vector<const texpr1*>& l,
const abstract1& inter)
999 if (l.size()!=v.size())
1000 throw std::invalid_argument(
"apron::abstract1::assign(manager&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&) vectors have different size");
1001 ap_texpr1_t ll[l.size()];
1002 ap_var_t vv[v.size()];
1003 for (
size_t i=0;i<l.size();i++) {
1004 ll[i] = *(l[i]->get_ap_texpr1_t());
1005 vv[i] = v[i].get_ap_var_t();
1007 a = ap_abstract1_assign_texpr_array(m.get_ap_manager_t(),
true, &a,
1010 m.raise(
"apron::abstract1::assign(manager&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&) vectors have different size");
1014inline abstract1&
assign(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
const texpr1& l,
const abstract1& inter = abstract1::null)
1017 ap_abstract1_assign_texpr_array(m.get_ap_manager_t(),
false,
1018 const_cast<ap_abstract1_t*
>(&src.a),
1019 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
1020 const_cast<ap_texpr1_t*
>(l.get_ap_texpr1_t()),
1023 m.raise(
"apron::assign(manager&, abstract1&, const abstract1&, const var&, const texpr1&, const abstract1&)",r);
1024 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1029inline abstract1&
assign(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var v[],
const texpr1 *
const l[],
const abstract1& inter = abstract1::null)
1031 ap_texpr1_t ll[size];
1032 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_texpr1_t());
1034 ap_abstract1_assign_texpr_array(m.get_ap_manager_t(),
false,
1035 const_cast<ap_abstract1_t*
>(&src.a),
1036 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1039 m.raise(
"apron::assign((manager&, abstract1&, const abstract1&, size_t size, const var[], const texpr1 * const [], const abstract1&)",r);
1040 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1045inline abstract1&
assign(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& v,
const std::vector<const texpr1*>& l,
const abstract1& inter = abstract1::null)
1047 if (l.size()!=v.size())
1048 throw std::invalid_argument(
"apron::assign(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&) vectors have different size");
1049 ap_texpr1_t ll[l.size()];
1050 ap_var_t vv[v.size()];
1051 for (
size_t i=0;i<l.size();i++) {
1052 ll[i] = *(l[i]->get_ap_texpr1_t());
1053 vv[i] = v[i].get_ap_var_t();
1056 ap_abstract1_assign_texpr_array(m.get_ap_manager_t(),
false,
1057 const_cast<ap_abstract1_t*
>(&src.a),
1060 m.raise(
"apron::assign(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&)",r);
1061 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1072inline abstract1& abstract1::substitute(manager& m,
const var& v,
const linexpr1& l,
const abstract1& inter)
1074 a = ap_abstract1_substitute_linexpr_array(m.get_ap_manager_t(),
true, &a,
1075 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
1076 const_cast<ap_linexpr1_t*
>(l.get_ap_linexpr1_t()),
1079 m.raise(
"apron::abstract1::substitute(manager&, size_t size, const var&, const linexpr1&, const abstract1&)");
1083inline abstract1& abstract1::substitute(manager& m,
size_t size,
const var v[],
const linexpr1 *
const l[],
const abstract1& inter)
1085 ap_linexpr1_t ll[size];
1086 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_linexpr1_t());
1088 ap_abstract1_substitute_linexpr_array(m.get_ap_manager_t(),
true, &a,
1089 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1092 m.raise(
"apron::abstract1::substitute(manager&, size_t size, const var[], const linexpr1 * const [], const abstract1&)");
1097inline abstract1& abstract1::substitute(manager& m,
const std::vector<var>& v,
const std::vector<const linexpr1*>& l,
const abstract1& inter)
1099 if (l.size()!=v.size())
1100 throw std::invalid_argument(
"apron::abstract1::substitute(manager&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&) vectors have different size");
1101 ap_linexpr1_t ll[l.size()];
1102 ap_var_t vv[v.size()];
1103 for (
size_t i=0;i<l.size();i++) {
1104 ll[i] = *(l[i]->get_ap_linexpr1_t());
1105 vv[i] = v[i].get_ap_var_t();
1108 ap_abstract1_substitute_linexpr_array(m.get_ap_manager_t(),
true, &a,
1111 m.raise(
"apron::abstract1::substitute(manager&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&)");
1116inline abstract1&
substitute(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
const linexpr1& l,
const abstract1& inter = abstract1::null)
1119 ap_abstract1_substitute_linexpr_array(m.get_ap_manager_t(),
false,
1120 const_cast<ap_abstract1_t*
>(&src.a),
1121 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
1122 const_cast<ap_linexpr1_t*
>(l.get_ap_linexpr1_t()),
1125 m.raise(
"apron::substitute(manager&, abstract1&, const abstract1&, const var&, const linexpr1&, const abstract1&)",r);
1126 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1131inline abstract1&
substitute(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var v[],
const linexpr1 *
const l[],
const abstract1& inter = abstract1::null)
1133 ap_linexpr1_t ll[size];
1134 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_linexpr1_t());
1136 ap_abstract1_substitute_linexpr_array(m.get_ap_manager_t(),
false,
1137 const_cast<ap_abstract1_t*
>(&src.a),
1138 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1141 m.raise(
"apron::substitute((manager&, abstract1&, const abstract1&, size_t size, const var[], const linexpr1 * const [], const abstract1&)",r);
1142 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1147inline abstract1&
substitute(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& v,
const std::vector<const linexpr1*>& l,
const abstract1& inter = abstract1::null)
1149 if (l.size()!=v.size())
1150 throw std::invalid_argument(
"apron::substitute(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&) vectors have different size");
1151 ap_linexpr1_t ll[l.size()];
1152 ap_var_t vv[v.size()];
1153 for (
size_t i=0;i<l.size();i++) {
1154 ll[i] = *(l[i]->get_ap_linexpr1_t());
1155 vv[i] = v[i].get_ap_var_t();
1158 ap_abstract1_substitute_linexpr_array(m.get_ap_manager_t(),
false,
1159 const_cast<ap_abstract1_t*
>(&src.a),
1162 m.raise(
"apron::substitute(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const linexpr1*>&, const abstract1&)",r);
1163 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1172inline abstract1& abstract1::substitute(manager& m,
const var& v,
const texpr1& l,
const abstract1& inter)
1174 a = ap_abstract1_substitute_texpr_array(m.get_ap_manager_t(),
true, &a,
1175 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
1176 const_cast<ap_texpr1_t*
>(l.get_ap_texpr1_t()),
1179 m.raise(
"apron::abstract1::substitute(manager&, size_t size, const var&, const texpr1&, const abstract1&)");
1183inline abstract1& abstract1::substitute(manager& m,
size_t size,
const var v[],
const texpr1 *
const l[],
const abstract1& inter)
1185 ap_texpr1_t ll[size];
1186 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_texpr1_t());
1187 a = ap_abstract1_substitute_texpr_array(m.get_ap_manager_t(),
true, &a,
1188 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1191 m.raise(
"apron::abstract1::substitute(manager&, size_t size, const var[], const texpr1 * const [], const abstract1&)");
1195inline abstract1& abstract1::substitute(manager& m,
const std::vector<var>& v,
const std::vector<const texpr1*>& l,
const abstract1& inter)
1197 if (l.size()!=v.size())
1198 throw std::invalid_argument(
"apron::abstract1::substitute(manager&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&) vectors have different size");
1199 ap_texpr1_t ll[l.size()];
1200 ap_var_t vv[v.size()];
1201 for (
size_t i=0;i<l.size();i++) {
1202 ll[i] = *(l[i]->get_ap_texpr1_t());
1203 vv[i] = v[i].get_ap_var_t();
1205 a = ap_abstract1_substitute_texpr_array(m.get_ap_manager_t(),
true, &a,
1208 m.raise(
"apron::abstract1::substitute(manager&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&) vectors have different size");
1212inline abstract1&
substitute(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
const texpr1& l,
const abstract1& inter = abstract1::null)
1215 ap_abstract1_substitute_texpr_array(m.get_ap_manager_t(),
false,
1216 const_cast<ap_abstract1_t*
>(&src.a),
1217 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(&v)),
1218 const_cast<ap_texpr1_t*
>(l.get_ap_texpr1_t()),
1221 m.raise(
"apron::substitute(manager&, abstract1&, const abstract1&, const var&, const texpr1&, const abstract1&)",r);
1222 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1227inline abstract1&
substitute(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var v[],
const texpr1 *
const l[],
const abstract1& inter = abstract1::null)
1229 ap_texpr1_t ll[size];
1230 for (
size_t i=0;i<size;i++) ll[i] = *(l[i]->get_ap_texpr1_t());
1232 ap_abstract1_substitute_texpr_array(m.get_ap_manager_t(),
false,
1233 const_cast<ap_abstract1_t*
>(&src.a),
1234 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1237 m.raise(
"apron::substitute((manager&, abstract1&, const abstract1&, size_t size, const var[], const texpr1 * const [], const abstract1&)",r);
1238 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1243inline abstract1&
substitute(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& v,
const std::vector<const texpr1*>& l,
const abstract1& inter = abstract1::null)
1245 if (l.size()!=v.size())
1246 throw std::invalid_argument(
"apron::substitute(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&) vectors have different size");
1247 ap_texpr1_t ll[l.size()];
1248 ap_var_t vv[v.size()];
1249 for (
size_t i=0;i<l.size();i++) {
1250 ll[i] = *(l[i]->get_ap_texpr1_t());
1251 vv[i] = v[i].get_ap_var_t();
1254 ap_abstract1_substitute_texpr_array(m.get_ap_manager_t(),
false,
1255 const_cast<ap_abstract1_t*
>(&src.a),
1258 m.raise(
"apron::substitute(manager&, abstract1, const abstract1&, const std::vector<var>&, const std::vector<const texpr1*>&, const abstract1&)",r);
1259 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1271inline abstract1& abstract1::forget(manager& m,
const var& v,
bool project)
1273 return forget(m,1,&v,project);
1276inline abstract1& abstract1::forget(manager& m,
size_t size,
const var v[],
bool project)
1278 a = ap_abstract1_forget_array(m.get_ap_manager_t(),
true, &a,
1279 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1281 m.raise(
"apron::abstract1::forget(manager&, size_t, const var[], bool)");
1285inline abstract1& abstract1::forget(manager& m,
const std::vector<var>& v,
bool project)
1287 ap_var_t vv[v.size()];
1288 for (
size_t i=0;i<v.size();i++) vv[i] = v[i].get_ap_var_t();
1289 a = ap_abstract1_forget_array(m.get_ap_manager_t(),
true, &a, vv, v.size(), project);
1290 m.raise(
"apron::abstract1::forget(manager&, const std::vector<var>&, bool)");
1294inline abstract1&
forget(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
bool project =
false)
1296 return forget(m,dst,src,1,&v,project);
1299inline abstract1&
forget(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var v[],
bool project =
false)
1301 ap_abstract1_t r = ap_abstract1_forget_array(m.get_ap_manager_t(),
false,
1302 const_cast<ap_abstract1_t*
>(&src.a),
1303 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(v)),
1305 m.raise(
"apron::forget(manager&, abstract1&, const abstract1&, size_t, const var[], bool)",r);
1306 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1311inline abstract1&
forget(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& v,
bool project =
false)
1313 ap_var_t vv[v.size()];
1314 for (
size_t i=0;i<v.size();i++) vv[i] = v[i].get_ap_var_t();
1315 ap_abstract1_t r = ap_abstract1_forget_array(m.get_ap_manager_t(),
false,
1316 const_cast<ap_abstract1_t*
>(&src.a),
1317 vv, v.size(), project);
1318 m.raise(
"apron::forget(manager&, abstract1&, const abstract1&, const std::vector<var>&, bool)",r);
1319 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1329inline abstract1& abstract1::change_environment(manager& m,
const environment& e,
bool project)
1331 a = ap_abstract1_change_environment(m.get_ap_manager_t(),
true, &a,
1332 const_cast<ap_environment_t*
>(e.get_ap_environment_t()),
1334 m.raise(
"apron::abstract1::change_environment(manager&, const environment&, bool)");
1338inline abstract1&
change_environment(manager& m, abstract1& dst,
const abstract1& src,
const environment& e,
bool project =
false)
1341 ap_abstract1_change_environment(m.get_ap_manager_t(),
false,
1342 const_cast<ap_abstract1_t*
>(&src.a),
1343 const_cast<ap_environment_t*
>(e.get_ap_environment_t()),
1345 m.raise(
"apron::change_environment(manager&, abstrct1&, const abstract1&, const environment&, bool)",r);
1346 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1351inline abstract1& abstract1::minimize_environment(manager& m)
1353 a = ap_abstract1_minimize_environment(m.get_ap_manager_t(),
true, &a);
1354 m.raise(
"apron::abstract1::minimize_environment(manager&)");
1361 ap_abstract1_minimize_environment(m.get_ap_manager_t(),
false,
1362 const_cast<ap_abstract1_t*
>(&src.a));
1363 m.raise(
"apron::minimize_environment(manager&, abstract1&, const abstract1&)",r);
1364 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1369inline abstract1& abstract1::rename(manager& m,
size_t size,
const var oldv[],
const var newv[])
1371 a = ap_abstract1_rename_array(m.get_ap_manager_t(),
true, &a,
1372 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(oldv)),
1373 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(newv)),
1375 m.raise(
"apron::abstract1::rename(manager&, size_t, const var[], const var[])");
1379inline abstract1& abstract1::rename(manager& m,
const std::vector<var>& oldv,
const std::vector<var>& newv)
1381 if (oldv.size()!=newv.size())
1382 throw std::invalid_argument(
"apron::abstract1::rename(manager&, const std::vector<var>&, const std::vector<var>&) vector have different size");
1383 ap_var_t oldvv[oldv.size()];
1384 ap_var_t newvv[newv.size()];
1385 for (
size_t i=0;i<oldv.size();i++) {
1386 oldvv[i] = oldv[i].get_ap_var_t();
1387 newvv[i] = newv[i].get_ap_var_t();
1389 a = ap_abstract1_rename_array(m.get_ap_manager_t(),
true, &a,
1390 oldvv, newvv, oldv.size());
1391 m.raise(
"apron::abstract1::rename(manager&, const std::vector<var>&, const std::vector<var>&)");
1395inline abstract1&
rename(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var oldv[],
const var newv[])
1398 ap_abstract1_rename_array(m.get_ap_manager_t(),
false,
1399 const_cast<ap_abstract1_t*
>(&src.a),
1400 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(oldv)),
1401 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(newv)),
1403 m.raise(
"apron::rename(manager&, abstract1&, const abstract1&, size_t, const var[], const var[])",r);
1404 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1409inline abstract1&
rename(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& oldv,
const std::vector<var>& newv)
1411 if (oldv.size()!=newv.size())
1412 throw std::invalid_argument(
"apron::abstract1::rename(manager&, abstract1&, const abstract1&, const std::vector<var>&, const std::vector<var>&) vector have different size");
1413 ap_var_t oldvv[oldv.size()];
1414 ap_var_t newvv[newv.size()];
1415 for (
size_t i=0;i<oldv.size();i++) {
1416 oldvv[i] = oldv[i].get_ap_var_t();
1417 newvv[i] = newv[i].get_ap_var_t();
1420 ap_abstract1_rename_array(m.get_ap_manager_t(),
false,
1421 const_cast<ap_abstract1_t*
>(&src.a),
1422 oldvv, newvv, oldv.size());
1423 m.raise(
"apron::rename(manager&, abstract1&, const abstract1&, const std::vector<var>&, const std::vector<var>&)",r);
1424 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1434inline abstract1& abstract1::expand(manager& m,
const var& v,
size_t size,
const var vv[])
1436 a = ap_abstract1_expand(m.get_ap_manager_t(),
true, &a,
1437 const_cast<ap_var_t
>(v.get_ap_var_t()),
1438 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(vv)),
1440 m.raise(
"apron::abstract1::expand(manager&, const var&, size_t, const var[])");
1444inline abstract1& abstract1::expand(manager& m,
const var& v,
const std::vector<var>& vv)
1446 ap_var_t ww[vv.size()];
1447 for (
size_t i=0;i<vv.size();i++) ww[i] = vv[i].get_ap_var_t();
1448 a = ap_abstract1_expand(m.get_ap_manager_t(),
true, &a,
1449 const_cast<ap_var_t
>(v.get_ap_var_t()),
1451 m.raise(
"apron::abstract1::expand(manager&, const var&, const std::vector<var>&)");
1455inline abstract1&
expand(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
size_t size,
const var vv[])
1458 ap_abstract1_expand(m.get_ap_manager_t(),
false,
1459 const_cast<ap_abstract1_t*
>(&src.a),
1460 const_cast<ap_var_t
>(v.get_ap_var_t()),
1461 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(vv)),
1463 m.raise(
"apron::expand(manager&, abstract1&, const abstract1&, const var&, size_t, const var[])",r);
1464 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1469inline abstract1&
expand(manager& m, abstract1& dst,
const abstract1& src,
const var& v,
const std::vector<var>& vv)
1471 ap_var_t ww[vv.size()];
1472 for (
size_t i=0;i<vv.size();i++) ww[i] = vv[i].get_ap_var_t();
1474 ap_abstract1_expand(m.get_ap_manager_t(),
false,
1475 const_cast<ap_abstract1_t*
>(&src.a),
1476 const_cast<ap_var_t
>(v.get_ap_var_t()),
1478 m.raise(
"apron::expand(manager&, abstract1&, const abstract1&, const var&, const std::vector<var>&)",r);
1479 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1486inline abstract1& abstract1::fold(manager& m,
size_t size,
const var vv[])
1488 a = ap_abstract1_fold(m.get_ap_manager_t(),
true, &a,
1489 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(vv)),
1491 m.raise(
"apron::abstract1::fold(manager&, const var&, size_t, const var[])");
1495inline abstract1& abstract1::fold(manager& m,
const std::vector<var>& vv)
1497 ap_var_t ww[vv.size()];
1498 for (
size_t i=0;i<vv.size();i++) ww[i] = vv[i].get_ap_var_t();
1499 a = ap_abstract1_fold(m.get_ap_manager_t(),
true, &a, ww, vv.size());
1500 m.raise(
"apron::abstract1::fold(manager&, const std::vector<var>&)");
1504inline abstract1&
fold(manager& m, abstract1& dst,
const abstract1& src,
size_t size,
const var vv[])
1507 ap_abstract1_fold(m.get_ap_manager_t(),
false,
1508 const_cast<ap_abstract1_t*
>(&src.a),
1509 reinterpret_cast<ap_var_t*
>(
const_cast<var*
>(vv)),
1511 m.raise(
"apron::fold(manager&, abstract1&, const abstract1&, size_t, const var[])",r);
1512 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1517inline abstract1&
fold(manager& m, abstract1& dst,
const abstract1& src,
const std::vector<var>& vv)
1519 ap_var_t ww[vv.size()];
1520 for (
size_t i=0;i<vv.size();i++) ww[i] = vv[i].get_ap_var_t();
1522 ap_abstract1_fold(m.get_ap_manager_t(),
false,
1523 const_cast<ap_abstract1_t*
>(&src.a),
1525 m.raise(
"apron::fold(manager&, abstract1&, const abstract1&, const std::vector<var>&)",r);
1526 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1535inline abstract1&
widening(manager& m, abstract1& dst,
const abstract1& x,
const abstract1& y)
1538 ap_abstract1_widening(m.get_ap_manager_t(),
1539 const_cast<ap_abstract1_t*
>(&x.a),
1540 const_cast<ap_abstract1_t*
>(&y.a));
1541 m.raise(
"apron::widening(manager&, abstract1&, const abstract1&, const abstract1&)",r);
1542 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1547inline abstract1&
widening(manager& m, abstract1& dst,
const abstract1& x,
const abstract1& y,
const lincons1_array& l)
1550 ap_abstract1_widening_threshold(m.get_ap_manager_t(),
1551 const_cast<ap_abstract1_t*
>(&x.a),
1552 const_cast<ap_abstract1_t*
>(&y.a),
1553 const_cast<ap_lincons1_array_t*
>(l.get_ap_lincons1_array_t()));
1554 m.raise(
"apron::widening(manager&, abstract1&, const abstract1&, const abstract1&, const lincons1_array&)",r);
1555 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1565inline abstract1& abstract1::closure(manager& m)
1567 a = ap_abstract1_closure(m.get_ap_manager_t(),
true, &a);
1568 m.raise(
"apron::abstract1::closured(manager&)");
1572inline abstract1&
closure(manager& m, abstract1& dst,
const abstract1& src)
1575 ap_abstract1_closure(m.get_ap_manager_t(),
false,
const_cast<ap_abstract1_t*
>(&src.a));
1576 m.raise(
"apron::closure(manager&, abstract1&, const abstract1&)",r);
1577 ap_abstract1_clear(m.get_ap_manager_t(), &dst.a);
1586inline ap_abstract1_t* abstract1::get_ap_abstract1_t()
1590inline const ap_abstract1_t* abstract1::get_ap_abstract1_t()
const
abstract1 & rename(manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var oldv[], const var newv[])
Definition apxx_abstract1_inline.hh:1395
void printdiff(manager &m, const abstract1 &x, const abstract1 &y, FILE *stream=stdout)
Definition apxx_abstract1_inline.hh:348
abstract1 & meet(manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:657
abstract1 & closure(manager &m, abstract1 &dst, const abstract1 &src)
Definition apxx_abstract1_inline.hh:1572
abstract1 & fold(manager &m, abstract1 &dst, const abstract1 &src, size_t size, const var vv[])
Definition apxx_abstract1_inline.hh:1504
bool operator!=(const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:515
abstract1 & expand(manager &m, abstract1 &dst, const abstract1 &src, const var &v, size_t size, const var vv[])
Definition apxx_abstract1_inline.hh:1455
abstract1 & join(manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:704
bool operator<(const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:539
abstract1 & unify(manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:636
bool operator<=(const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:520
std::ostream & operator<<(std::ostream &os, const abstract1 &s)
Definition apxx_abstract1_inline.hh:362
static ap_abstract1_t * ap_abstract1_t_or_null(const abstract1 &i)
Definition apxx_abstract1_inline.hh:867
abstract1 & assign(manager &m, abstract1 &dst, const abstract1 &src, const var &v, const linexpr1 &l, const abstract1 &inter=abstract1::null)
Definition apxx_abstract1_inline.hh:918
abstract1 & add_rays(manager &m, abstract1 &dst, const abstract1 &x, const generator1_array &y)
Definition apxx_abstract1_inline.hh:798
bool operator>=(const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:529
bool operator>(const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:534
abstract1 & widening(manager &m, abstract1 &dst, const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:1535
abstract1 & substitute(manager &m, abstract1 &dst, const abstract1 &src, const var &v, const linexpr1 &l, const abstract1 &inter=abstract1::null)
Definition apxx_abstract1_inline.hh:1116
abstract1 & change_environment(manager &m, abstract1 &dst, const abstract1 &src, const environment &e, bool project=false)
Definition apxx_abstract1_inline.hh:1338
abstract1 & deserialize(manager &m, abstract1 &dst, const std::string &s, size_t *eaten=NULL)
Definition apxx_abstract1_inline.hh:384
abstract1 & minimize_environment(manager &m, abstract1 &dst, const abstract1 &src)
Definition apxx_abstract1_inline.hh:1358
bool operator==(const abstract1 &x, const abstract1 &y)
Definition apxx_abstract1_inline.hh:506
abstract1 & forget(manager &m, abstract1 &dst, const abstract1 &src, const var &v, bool project=false)
Definition apxx_abstract1_inline.hh:1294