27inline abstract0::abstract0(ap_abstract0_t* x)
31inline abstract0::abstract0(manager &m,
size_t intdim,
size_t realdim, top x)
33 a = ap_abstract0_top(m.get_ap_manager_t(), intdim, realdim);
34 m.raise(
"apron::abstract0::abstract0(manager&, size_t, size_t, top)",a);
37inline abstract0::abstract0(manager &m,
size_t intdim,
size_t realdim, bottom x)
39 a = ap_abstract0_bottom(m.get_ap_manager_t(), intdim, realdim);
40 m.raise(
"apron::abstract0::abstract0(manager&, size_t, size_t, bottom)",a);
43inline abstract0::abstract0(manager &m,
const abstract0& t)
45 a = ap_abstract0_copy(m.get_ap_manager_t(), t.a);
46 m.raise(
"apron::abstract0::abstract0::(manager&, const abstract0&)",a);
49inline abstract0::abstract0(manager &m,
size_t intdim,
size_t realdim,
const interval_array& x)
51 if (x.size()<intdim+realdim)
52 throw std::invalid_argument(
"apron::abstract0::abstract0(manager&, size_t, size_t, const interval_array&) array too short");
53 a = ap_abstract0_of_box(m.get_ap_manager_t(), intdim, realdim,
54 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()));
55 m.raise(
"apron::abstract0::abstract0(manager&, size_t, size_t, const interval_array&)",a);
58inline abstract0::abstract0(manager &m,
size_t intdim,
size_t realdim,
const lincons0_array& x)
60 a = ap_abstract0_of_lincons_array(m.get_ap_manager_t(), intdim, realdim,
61 const_cast<ap_lincons0_array_t*
>(x.get_ap_lincons0_array_t()));
62 m.raise(
"apron::abstract0::abstract0(manager&, size_t, size_t, const lincons0_array&)",a);
65inline abstract0::abstract0(manager &m,
size_t intdim,
size_t realdim,
const tcons0_array& x)
67 a = ap_abstract0_of_tcons_array(m.get_ap_manager_t(), intdim, realdim,
68 const_cast<ap_tcons0_array_t*
>(x.get_ap_tcons0_array_t()));
69 m.raise(
"apron::abstract0::abstract0(manager&, size_t, size_t, const tcons0_array&)",a);
72inline abstract0::abstract0(
const abstract0& t)
74 a = ap_abstract0_copy(t.a->man, t.a);
75 manager::raise(a->man,
"apron::abstract0::abstract0(abstract0&)",a);
83inline abstract0::~abstract0()
85 if (a && a->value) ap_abstract0_free(a->man, a);
89inline void abstract0::free(manager& m)
91 if (a && a->value) ap_abstract0_free(m.get_ap_manager_t(), a);
99inline abstract0& abstract0::operator=(
const abstract0& t)
102 ap_abstract0_t* r = ap_abstract0_copy(a->man, t.a);
103 manager::raise(a->man,
"apron::abstract0::operator=(const abstract0&)",r);
104 ap_abstract0_free(a->man, a);
110inline abstract0& abstract0::operator=(top t)
112 ap_dimension_t d = ap_abstract0_dimension(a->man, a);
113 ap_abstract0_t* r = ap_abstract0_top(a->man, d.intdim, d.realdim);
114 manager::raise(a->man,
"apron::abstract0::operator=(top)",r);
115 ap_abstract0_free(a->man, a);
120inline abstract0& abstract0::operator=(bottom t)
122 ap_dimension_t d = ap_abstract0_dimension(a->man, a);
123 ap_abstract0_t* r = ap_abstract0_bottom(a->man, d.intdim, d.realdim);
124 manager::raise(a->man,
"apron::abstract0::operator=(bottom)",r);
125 ap_abstract0_free(a->man, a);
130inline abstract0& abstract0::operator=(
const interval_array& x)
132 ap_dimension_t d = ap_abstract0_dimension(a->man, a);
133 if (x.size()<d.intdim+d.realdim)
134 throw std::invalid_argument(
"apron::abstract0::operator=(const interval_array&) array too short");
135 ap_abstract0_t* r = ap_abstract0_of_box(a->man, d.intdim, d.realdim,
136 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()));
137 manager::raise(a->man,
"apron::abstract0::operator=(const interval_array&)",r);
138 ap_abstract0_free(a->man, a);
143inline abstract0& abstract0::operator=(
const lincons0_array& x)
145 ap_dimension_t d = ap_abstract0_dimension(a->man, a);
147 ap_abstract0_of_lincons_array(a->man, d.intdim, d.realdim,
148 const_cast<ap_lincons0_array_t*
>(x.get_ap_lincons0_array_t()));
149 manager::raise(a->man,
"apron::abstract0::operator=(const lincons0_array&)",r);
150 ap_abstract0_free(a->man, a);
155inline abstract0& abstract0::operator=(
const tcons0_array& x)
157 ap_dimension_t d = ap_abstract0_dimension(a->man, a);
159 ap_abstract0_of_tcons_array(a->man, d.intdim, d.realdim,
160 const_cast<ap_tcons0_array_t*
>(x.get_ap_tcons0_array_t()));
161 manager::raise(a->man,
"apron::abstract0::operator=(const tcons0_array&)",r);
162 ap_abstract0_free(a->man, a);
167inline abstract0& abstract0::set(manager& m,
const abstract0& t)
170 ap_abstract0_t* r = ap_abstract0_copy(m.get_ap_manager_t(), t.a);
171 m.raise(
"apron::abstract0::set(manager&, abstract0&)",r);
172 ap_abstract0_free(m.get_ap_manager_t(), a);
178inline abstract0& abstract0::set(manager& m, top t,
size_t intdim,
size_t realdim)
180 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
181 if (intdim!=AP_DIM_MAX) d.intdim = intdim;
182 if (realdim!=AP_DIM_MAX) d.realdim = realdim;
183 ap_abstract0_t* r = ap_abstract0_top(m.get_ap_manager_t(), d.intdim, d.realdim);
184 m.raise(
"apron::abstract0::set(manager&, top, size_t, size_t)",r);
185 ap_abstract0_free(m.get_ap_manager_t(), a);
190inline abstract0& abstract0::set(manager& m, bottom t,
size_t intdim,
size_t realdim)
192 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
193 if (intdim!=AP_DIM_MAX) d.intdim = intdim;
194 if (realdim!=AP_DIM_MAX) d.realdim = realdim;
195 ap_abstract0_t* r = ap_abstract0_bottom(m.get_ap_manager_t(), d.intdim, d.realdim);
196 m.raise(
"apron::abstract0::set(manager&, bottom, size_t, size_t)",r);
197 ap_abstract0_free(m.get_ap_manager_t(), a);
202inline abstract0& abstract0::set(manager& m,
const interval_array& x,
size_t intdim,
size_t realdim)
204 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
205 if (intdim!=AP_DIM_MAX) d.intdim = intdim;
206 if (realdim!=AP_DIM_MAX) d.realdim = realdim;
207 if (x.size()<d.intdim+d.realdim)
208 throw std::invalid_argument(
"apron::abstract0::set(manager&, const interval_array&, size_t, size_t) array too short");
209 ap_abstract0_t* r = ap_abstract0_of_box(m.get_ap_manager_t(), d.intdim, d.realdim,
210 const_cast<ap_interval_t**
>(x.get_ap_interval_t_array()));
211 m.raise(
"apron::abstract0::set(manager&, const interval_array&, size_t, size_t)",r);
212 ap_abstract0_free(m.get_ap_manager_t(), a);
217inline abstract0& abstract0::set(manager& m,
const lincons0_array& x,
size_t intdim,
size_t realdim)
219 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
220 if (intdim!=AP_DIM_MAX) d.intdim = intdim;
221 if (realdim!=AP_DIM_MAX) d.realdim = realdim;
223 ap_abstract0_of_lincons_array(m.get_ap_manager_t(), d.intdim, d.realdim,
224 const_cast<ap_lincons0_array_t*
>(x.get_ap_lincons0_array_t()));
225 m.raise(
"apron::abstract0::set(manager&, const lincons0_array&, size_t, size_t)",r);
226 ap_abstract0_free(m.get_ap_manager_t(), a);
231inline abstract0& abstract0::set(manager& m,
const tcons0_array& x,
size_t intdim,
size_t realdim)
233 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
234 if (intdim!=AP_DIM_MAX) d.intdim = intdim;
235 if (realdim!=AP_DIM_MAX) d.realdim = realdim;
237 ap_abstract0_of_tcons_array(m.get_ap_manager_t(), d.intdim, d.realdim,
238 const_cast<ap_tcons0_array_t*
>(x.get_ap_tcons0_array_t()));
239 m.raise(
"apron::abstract0::set(manager&, const tcons0_array&, size_t, size_t)",r);
240 ap_abstract0_free(m.get_ap_manager_t(), a);
249inline abstract0& abstract0::minimize(manager& m)
251 ap_abstract0_minimize(m.get_ap_manager_t(), a);
252 m.raise(
"abstract0::minimize(manager&)");
256inline abstract0& abstract0::canonicalize(manager& m)
258 ap_abstract0_canonicalize(m.get_ap_manager_t(), a);
259 m.raise(
"apron::abstract0::canonicalize(manager&)");
263inline abstract0& abstract0::approximate(manager& m,
int algorithm)
265 ap_abstract0_approximate(m.get_ap_manager_t(), a, algorithm);
266 m.raise(
"apron::abstract0::approximate(manager&, int)");
274inline void abstract0::print(manager& m,
char** name_of_dim, FILE* stream)
const
276 ap_abstract0_fprint(stream, m.get_ap_manager_t(), a, name_of_dim);
277 m.raise(
"apron::abstract0::print(manager&, char**, FILE*)");
280inline void printdiff(manager& m,
const abstract0& x,
const abstract0& y,
char** name_of_dim = NULL, FILE* stream = stdout)
282 ap_abstract0_fprintdiff(stream, m.get_ap_manager_t(), x.a, y.a, name_of_dim);
283 m.raise(
"apron::printdiff(manager&, const abstract0&, const abstract0&, char**, FILE*)");
286inline void abstract0::dump(manager& m, FILE* stream)
const
288 ap_abstract0_fdump(stream, m.get_ap_manager_t(), a);
289 m.raise(
"apron::abstract0::dump(manager&, FILE*)");
292inline std::ostream&
operator<< (std::ostream& os,
const abstract0& s)
294 manager m = s.get_manager();
295 if (s.is_bottom(m))
return os <<
"bottom";
296 if (s.is_top(m))
return os <<
"top";
297 return os << s.to_lincons_array(m);
304inline std::string* abstract0::serialize(manager& m)
const
306 ap_membuf_t x = ap_abstract0_serialize_raw(m.get_ap_manager_t(), a);
307 m.raise(
"apron::abstract0::serialize_raw(manager&)");
308 std::string* s =
new std::string((
char*)x.ptr, x.size);
313inline abstract0&
deserialize(manager& m, abstract0& dst,
const std::string& s,
size_t* eaten = NULL)
316 ap_abstract0_t* r = ap_abstract0_deserialize_raw(m.get_ap_manager_t(),
const_cast<char*
>(s.data()), &x);
317 m.raise(
"apron::deserialize_raw(manager&, abstract0&, const std::string&, size_t*)",r);
318 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
320 if (eaten) *eaten = x;
328inline manager abstract0::get_manager()
const
330 return ap_manager_copy(ap_abstract0_manager(a));
333inline ap_dimension_t abstract0::get_dimension(manager& m)
const
335 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
336 m.raise(
"apron::abstract0::get_dimension(manager&)");
340inline size_t abstract0::size(manager& m)
const
342 size_t sz = ap_abstract0_size(m.get_ap_manager_t(), a);
343 m.raise(
"apron::abstract0::get_size(manager&)");
352inline bool abstract0::is_bottom(manager& m)
const
354 bool r = ap_abstract0_is_bottom(m.get_ap_manager_t(), a);
355 m.raise(
"apron::abstract0::is_bottom(manager&)");
359inline bool abstract0::is_top(manager& m)
const
361 bool r = ap_abstract0_is_top(m.get_ap_manager_t(), a);
362 m.raise(
"apron::abstract0::is_top(manager&)");
366inline bool abstract0::is_eq(manager& m,
const abstract0& x)
const
368 bool r = ap_abstract0_is_eq(m.get_ap_manager_t(), a, x.a);
369 m.raise(
"apron::abstract0::is_eq(manager&, const abstract&)");
373inline bool abstract0::is_leq(manager& m,
const abstract0& x)
const
375 bool r = ap_abstract0_is_leq(m.get_ap_manager_t(), a, x.a);
376 m.raise(
"apron::abstract0::is_leq(manager&, const abstract&)");
380inline bool abstract0::sat(manager& m,
const lincons0& l)
const
382 bool r = ap_abstract0_sat_lincons(m.get_ap_manager_t(), a,
const_cast<ap_lincons0_t*
>(l.get_ap_lincons0_t()));
383 m.raise(
"apron::abstract0::sat(manager&, const lincons0&)");
387inline bool abstract0::sat(manager& m,
const tcons0& l)
const
389 bool r = ap_abstract0_sat_tcons(m.get_ap_manager_t(), a,
const_cast<ap_tcons0_t*
>(l.get_ap_tcons0_t()));
390 m.raise(
"apron::abstract0::sat(manager&, const tcons0&)");
394inline bool abstract0::sat(manager& m, ap_dim_t dim,
const interval& i)
const
396 bool r = ap_abstract0_sat_interval(m.get_ap_manager_t(), a, dim,
const_cast<ap_interval_t*
>(i.get_ap_interval_t()));
397 m.raise(
"apron::abstract0::sat(manager&, ap_dim_t, const interval&)");
401inline bool abstract0::is_dimension_unconstrained(manager& m, ap_dim_t dim)
const
403 bool r = ap_abstract0_is_dimension_unconstrained(m.get_ap_manager_t(), a, dim);
404 m.raise(
"apron::abstract0::is_dimension_unconstrained(manager&, ap_dim_t)");
409inline bool operator== (
const abstract0& x,
const abstract0& y)
411 bool r = ap_abstract0_is_eq(x.a->man, x.a, y.a);
412 manager::raise(x.a->man,
"apron::operator==(const abstract0&, const abstract0&)");
416inline bool operator!= (
const abstract0& x,
const abstract0& y)
421inline bool operator<= (
const abstract0& x,
const abstract0& y)
423 bool r = ap_abstract0_is_leq(x.a->man, x.a, y.a);
424 manager::raise(x.a->man,
"apron::operator<=(const abstract0&, const abstract0&)");
428inline bool operator>= (
const abstract0& x,
const abstract0& y)
433inline bool operator> (
const abstract0& x,
const abstract0& y)
438inline bool operator< (
const abstract0& x,
const abstract0& y)
447inline interval abstract0::bound(manager& m,
const linexpr0& l)
const
450 ap_abstract0_bound_linexpr(m.get_ap_manager_t(), a,
451 const_cast<ap_linexpr0_t*
>(l.get_ap_linexpr0_t()));
452 if (m.exception_raised()) ap_interval_free(r);
453 m.raise(
"apron::abstract0::bound(manager&, const linexpr0&)");
457inline interval abstract0::bound(manager& m,
const texpr0& l)
const
460 ap_abstract0_bound_texpr(m.get_ap_manager_t(), a,
461 const_cast<ap_texpr0_t*
>(l.get_ap_texpr0_t()));
462 if (m.exception_raised()) ap_interval_free(r);
463 m.raise(
"apron::abstract0::bound(manager&, const texpr0&)");
467inline interval abstract0::bound(manager& m, ap_dim_t d)
const
469 ap_interval_t* r = ap_abstract0_bound_dimension(m.get_ap_manager_t(), a, d);
470 if (m.exception_raised()) ap_interval_free(r);
471 m.raise(
"apron::abstract0::bound(manager&, ap_dim_t)");
475inline interval_array abstract0::to_box(manager& m)
const
477 ap_dimension_t d = ap_abstract0_dimension(m.get_ap_manager_t(), a);
478 ap_interval_t** r = ap_abstract0_to_box(m.get_ap_manager_t(), a);
479 m.raise(
"apron::abstract0::to_box(manager&)");
480 return interval_array(d.intdim+d.realdim, r);
483inline lincons0_array abstract0::to_lincons_array(manager& m)
const
485 ap_lincons0_array_t r = ap_abstract0_to_lincons_array(m.get_ap_manager_t(), a);
486 if (m.exception_raised()) ap_lincons0_array_clear(&r);
487 m.raise(
"apron::abstract0::to_lincons_array(manager&)");
491inline tcons0_array abstract0::to_tcons_array(manager& m)
const
493 ap_tcons0_array_t r = ap_abstract0_to_tcons_array(m.get_ap_manager_t(), a);
494 if (m.exception_raised()) ap_tcons0_array_clear(&r);
495 m.raise(
"apron::abstract0::to_tcons_array(manager&)");
499inline generator0_array abstract0::to_generator_array(manager& m)
const
501 ap_generator0_array_t r = ap_abstract0_to_generator_array(m.get_ap_manager_t(), a);
502 if (m.exception_raised()) ap_generator0_array_clear(&r);
503 m.raise(
"apron::abstract0::to_generator_array(manager&)");
511inline abstract0& abstract0::meet(manager& m,
const abstract0& y)
513 a = ap_abstract0_meet(m.get_ap_manager_t(),
true, a, y.a);
514 m.raise(
"apron::abstract0::meet(manager&, const abstract0&)");
518inline abstract0&
meet(manager& m, abstract0& dst,
const abstract0& x,
const abstract0& y)
520 ap_abstract0_t* r = ap_abstract0_meet(m.get_ap_manager_t(),
false, x.a, y.a);
521 m.raise(
"apron::meet(manager&, abstract0&, const abstract0&, const abstract0&)",r);
522 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
527inline abstract0&
meet(manager& m, abstract0& dst,
const std::vector<const abstract0*>& x)
529 ap_abstract0_t* xx[x.size()];
530 for (
size_t i=0;i<x.size();i++)
531 xx[i] =
const_cast<abstract0*
>(x[i])->get_ap_abstract0_t();
533 ap_abstract0_meet_array(m.get_ap_manager_t(), xx, x.size());
534 m.raise(
"apron::meet(manager&, abstract0&, const std::vector<const abstract0*>&)",r);
535 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
540inline abstract0&
meet(manager& m, abstract0& dst,
size_t sz,
const abstract0 *
const x[])
542 ap_abstract0_t* xx[sz];
543 for (
size_t i=0;i<sz;i++)
544 xx[i] =
const_cast<abstract0*
>(x[i])->get_ap_abstract0_t();
546 ap_abstract0_meet_array(m.get_ap_manager_t(), xx, sz);
547 m.raise(
"apron::meet(manager&, abstract0&, size_t, const abstract0 * const [])",r);
548 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
553inline abstract0& abstract0::join(manager& m,
const abstract0& y)
555 a = ap_abstract0_join(m.get_ap_manager_t(),
true, a, y.a);
556 m.raise(
"apron::abstract0::join(manager&, const abstract0&)");
560inline abstract0&
join(manager& m, abstract0& dst,
const abstract0& x,
const abstract0& y)
562 ap_abstract0_t* r = ap_abstract0_join(m.get_ap_manager_t(),
false, x.a, y.a);
563 m.raise(
"apron::join(manager&, abstract0&, const abstract0&, const abstract0&)",r);
564 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
569inline abstract0&
join(manager& m, abstract0& dst,
size_t sz,
const abstract0 *
const x[])
571 ap_abstract0_t* xx[sz];
572 for (
size_t i=0;i<sz;i++)
573 xx[i] =
const_cast<abstract0*
>(x[i])->get_ap_abstract0_t();
575 ap_abstract0_join_array(m.get_ap_manager_t(), xx, sz);
576 m.raise(
"apron::join(manager&, abstract0&, size_t, const abstract0 * const [])",r);
577 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
582inline abstract0&
join(manager& m, abstract0& dst,
const std::vector<const abstract0*>& x)
584 ap_abstract0_t* xx[x.size()];
585 for (
size_t i=0;i<x.size();i++)
586 xx[i] =
const_cast<abstract0*
>(x[i])->get_ap_abstract0_t();
588 ap_abstract0_join_array(m.get_ap_manager_t(), xx, x.size());
589 m.raise(
"apron::join(manager&, abstract0&, const std::vector<const abstract0*>&)",r);
590 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
595inline abstract0& abstract0::meet(manager& m,
const lincons0_array& y)
597 a = ap_abstract0_meet_lincons_array(m.get_ap_manager_t(),
true, a,
598 const_cast<ap_lincons0_array_t*
>(y.get_ap_lincons0_array_t()));
599 m.raise(
"apron::abstract0::meet(manager&, const lincons0_array&)");
603inline abstract0&
meet(manager& m, abstract0& dst,
const abstract0& x,
const lincons0_array& y)
606 ap_abstract0_meet_lincons_array(m.get_ap_manager_t(),
false, x.a,
607 const_cast<ap_lincons0_array_t*
>(y.get_ap_lincons0_array_t()));
608 m.raise(
"apron::meet(manager&, abstract0&, const abstract0&, const lincons0_array&)",r);
609 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
615inline abstract0& abstract0::meet(manager& m,
const tcons0_array& y)
617 a = ap_abstract0_meet_tcons_array(m.get_ap_manager_t(),
true, a,
618 const_cast<ap_tcons0_array_t*
>(y.get_ap_tcons0_array_t()));
619 m.raise(
"apron::abstract0::meet(manager&, const tcons0_array&)");
623inline abstract0&
meet(manager& m, abstract0& dst,
const abstract0& x,
const tcons0_array& y)
626 ap_abstract0_meet_tcons_array(m.get_ap_manager_t(),
false, x.a,
627 const_cast<ap_tcons0_array_t*
>(y.get_ap_tcons0_array_t()));
628 m.raise(
"apron::meet(manager&, abstract0&, const abstract0&, const tcons0_array&)",r);
629 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
636inline abstract0& abstract0::add_rays(manager& m,
const generator0_array& y)
638 a = ap_abstract0_add_ray_array(m.get_ap_manager_t(),
true, a,
639 const_cast<ap_generator0_array_t*
>(y.get_ap_generator0_array_t()));
640 m.raise(
"apron::abstract0::add_rays(manager&, const generator0_array&)");
644inline abstract0&
add_rays(manager& m, abstract0& dst,
const abstract0& x,
const generator0_array& y)
647 ap_abstract0_add_ray_array(m.get_ap_manager_t(),
false, x.a,
648 const_cast<ap_generator0_array_t*
>(y.get_ap_generator0_array_t()));
649 m.raise(
"apron::add_rays(manager&, abstract0&, const abstract0&, const generator0_array&)",r);
650 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
657inline abstract0& abstract0::operator*=(
const abstract0& y)
659 a = ap_abstract0_meet(a->man,
true, a, y.a);
660 manager::raise(a->man,
"apron::abstract0::operator*=(const abstract0&)");
664inline abstract0& abstract0::operator+=(
const abstract0& y)
666 a = ap_abstract0_join(a->man,
true, a, y.a);
667 manager::raise(a->man,
"apron::abstract0::operator+=(const abstract0&)");
671inline abstract0& abstract0::operator*=(
const lincons0_array& y)
673 a = ap_abstract0_meet_lincons_array(a->man,
true, a,
674 const_cast<ap_lincons0_array_t*
>(y.get_ap_lincons0_array_t()));
675 manager::raise(a->man,
"apron::abstract0::operator*=(const lincons0_array&)");
679inline abstract0& abstract0::operator*=(
const tcons0_array& y)
681 a = ap_abstract0_meet_tcons_array(a->man,
true, a,
682 const_cast<ap_tcons0_array_t*
>(y.get_ap_tcons0_array_t()));
683 manager::raise(a->man,
"apron::abstract0::operator*=(const tcons0_array&)");
687inline abstract0& abstract0::operator+=(
const generator0_array& y)
689 a = ap_abstract0_add_ray_array(a->man,
true, a,
690 const_cast<ap_generator0_array_t*
>(y.get_ap_generator0_array_t()));
691 manager::raise(a->man,
"apron::abstract0::operator+=(const generator0_array&)");
699inline abstract0& abstract0::assign(manager& m, ap_dim_t dim,
const linexpr0& l,
const abstract0& inter)
701 const linexpr0* ll = &l;
702 return assign(m, 1, &dim, &ll, inter);
705inline abstract0& abstract0::assign(manager& m,
size_t size,
const ap_dim_t dim[],
const linexpr0 *
const l[],
const abstract0& inter)
707 a = ap_abstract0_assign_linexpr_array(m.get_ap_manager_t(),
true, a,
708 const_cast<ap_dim_t*
>(dim),
709 reinterpret_cast<ap_linexpr0_t**
>(
const_cast<linexpr0**
>(l)),
711 m.raise(
"apron::abstract0::assign(manager&, size_t size, const ap_dim_t[], const linexpr0 * const [], const abstract0&)");
715inline abstract0& abstract0::assign(manager& m,
const std::vector<ap_dim_t>& dim,
const std::vector<const linexpr0*>& l,
const abstract0& inter)
717 if (l.size()!=dim.size())
718 throw std::invalid_argument(
"apron::abstract0::assign(manager&, const std::vector<ap_dim_t>&, const std::vector<const linexpr0*>&, const abstract0&) vectors have different size");
719 const linexpr0* ll[l.size()];
720 ap_dim_t dd[dim.size()];
721 for (
size_t i=0;i<l.size();i++) {
725 return assign(m, l.size(), dd, ll, inter);
728inline abstract0&
assign(manager& m, abstract0& dst,
const abstract0& src, ap_dim_t dim,
const linexpr0& l,
const abstract0& inter = abstract0::null)
730 const linexpr0* ll = &l;
731 return assign(m, dst, src, 1, &dim, &ll, inter);
734inline abstract0&
assign(manager& m, abstract0& dst,
const abstract0& src,
size_t size,
const ap_dim_t dim[],
const linexpr0 *
const l[],
const abstract0& inter = abstract0::null)
737 ap_abstract0_assign_linexpr_array(m.get_ap_manager_t(),
false, src.a,
738 const_cast<ap_dim_t*
>(dim),
739 reinterpret_cast<ap_linexpr0_t**
>(
const_cast<linexpr0**
>(l)),
741 m.raise(
"apron::assign((manager&, abstract0&, const abstract0&, size_t size, const ap_dim_t[], const linexpr0 * const [], const abstract0&)",r);
742 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
747inline abstract0&
assign(manager& m, abstract0& dst,
const abstract0& src,
const std::vector<ap_dim_t>& dim,
const std::vector<const linexpr0*>& l,
const abstract0& inter = abstract0::null)
749 if (l.size()!=dim.size())
750 throw std::invalid_argument(
"apron::assign(manager&, abstract0, const abstract0&, const std::vector<ap_dim_t>&, const std::vector<const linexpr0*>&, const abstract0&) vectors have different size");
751 const linexpr0* ll[l.size()];
752 ap_dim_t dd[dim.size()];
753 for (
size_t i=0;i<l.size();i++) {
757 return assign(m, dst, src, l.size(), dd, ll, inter);
764inline abstract0& abstract0::assign(manager& m, ap_dim_t dim,
const texpr0& l,
const abstract0& inter)
766 const texpr0* ll = &l;
767 return assign(m, 1, &dim, &ll, inter);
770inline abstract0& abstract0::assign(manager& m,
size_t size,
const ap_dim_t dim[],
const texpr0 *
const l[],
const abstract0& inter)
772 a = ap_abstract0_assign_texpr_array(m.get_ap_manager_t(),
true, a,
773 const_cast<ap_dim_t*
>(dim),
774 reinterpret_cast<ap_texpr0_t**
>(
const_cast<texpr0**
>(l)),
776 m.raise(
"apron::abstract0::assign(manager&, size_t size, const ap_dim_t[], const texpr0 * const [], const abstract0&)");
780inline abstract0& abstract0::assign(manager& m,
const std::vector<ap_dim_t>& dim,
const std::vector<const texpr0*>& l,
const abstract0& inter)
782 if (l.size()!=dim.size())
783 throw std::invalid_argument(
"apron::abstract0::assign(manager&, const std::vector<ap_dim_t>&, const std::vector<const texpr0*>&, const abstract0&) vectors have different size");
784 const texpr0* ll[l.size()];
785 ap_dim_t dd[dim.size()];
786 for (
size_t i=0;i<l.size();i++) {
790 return assign(m, l.size(), dd, ll, inter);
793inline abstract0&
assign(manager& m, abstract0& dst,
const abstract0& src, ap_dim_t dim,
const texpr0& l,
const abstract0& inter = abstract0::null)
795 const texpr0* ll = &l;
796 return assign(m, dst, src, 1, &dim, &ll, inter);
799inline abstract0&
assign(manager& m, abstract0& dst,
const abstract0& src,
size_t size,
const ap_dim_t dim[],
const texpr0 *
const l[],
const abstract0& inter = abstract0::null)
802 ap_abstract0_assign_texpr_array(m.get_ap_manager_t(),
false, src.a,
803 const_cast<ap_dim_t*
>(dim),
804 reinterpret_cast<ap_texpr0_t**
>(
const_cast<texpr0**
>(l)),
806 m.raise(
"apron::assign((manager&, abstract0&, const abstract0&, size_t size, const ap_dim_t[], const texpr0 * const [], const abstract0&)",r);
807 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
812inline abstract0&
assign(manager& m, abstract0& dst,
const abstract0& src,
const std::vector<ap_dim_t>& dim,
const std::vector<const texpr0*>& l,
const abstract0& inter = abstract0::null)
814 if (l.size()!=dim.size())
815 throw std::invalid_argument(
"apron::assign(manager&, abstract0, const abstract0&, const std::vector<ap_dim_t>&, const std::vector<const texpr0*>&, const abstract0&) vectors have different size");
816 const texpr0* ll[l.size()];
817 ap_dim_t dd[dim.size()];
818 for (
size_t i=0;i<l.size();i++) {
822 return assign(m, dst, src, l.size(), dd, ll, inter);
830inline abstract0& abstract0::substitute(manager& m, ap_dim_t dim,
const linexpr0& l,
const abstract0& inter)
832 const linexpr0* ll = &l;
836inline abstract0& abstract0::substitute(manager& m,
size_t size,
const ap_dim_t dim[],
const linexpr0 *
const l[],
const abstract0& inter)
838 a = ap_abstract0_substitute_linexpr_array(m.get_ap_manager_t(),
true, a,
839 const_cast<ap_dim_t*
>(dim),
840 reinterpret_cast<ap_linexpr0_t**
>(
const_cast<linexpr0**
>(l)),
842 m.raise(
"apron::abstract0::substitute(manager&, size_t size, const ap_dim_t[], const linexpr0 * const [], const abstract0&)");
846inline abstract0& abstract0::substitute(manager& m,
const std::vector<ap_dim_t>& dim,
const std::vector<const linexpr0*>& l,
const abstract0& inter)
848 if (l.size()!=dim.size())
849 throw std::invalid_argument(
"apron::abstract0::substitute(manager&, const std::vector<ap_dim_t>&, const std::vector<const linexpr0*>&, const abstract0&) vectors have different size");
850 const linexpr0* ll[l.size()];
851 ap_dim_t dd[dim.size()];
852 for (
size_t i=0;i<l.size();i++) {
856 return substitute(m, l.size(), dd, ll, inter);
859inline abstract0&
substitute(manager& m, abstract0& dst,
const abstract0& src, ap_dim_t dim,
const linexpr0& l,
const abstract0& inter = abstract0::null)
861 const linexpr0* ll = &l;
862 return substitute(m, dst, src, 1, &dim, &ll, inter);
865inline abstract0&
substitute(manager& m, abstract0& dst,
const abstract0& src,
size_t size,
const ap_dim_t dim[],
const linexpr0 *
const l[],
const abstract0& inter = abstract0::null)
868 ap_abstract0_substitute_linexpr_array(m.get_ap_manager_t(),
false, src.a,
869 const_cast<ap_dim_t*
>(dim),
870 reinterpret_cast<ap_linexpr0_t**
>(
const_cast<linexpr0**
>(l)),
872 m.raise(
"apron::substitute((manager&, abstract0&, const abstract0&, size_t size, const ap_dim_t[], const linexpr0 *const [], const abstract0&)",r);
873 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
878inline abstract0&
substitute(manager& m, abstract0& dst,
const abstract0& src,
const std::vector<ap_dim_t>& dim,
const std::vector<const linexpr0*>& l,
const abstract0& inter = abstract0::null)
880 if (l.size()!=dim.size())
881 throw std::invalid_argument(
"apron::substitute(manager&, abstract0, const abstract0&, const std::vector<ap_dim_t>&, const std::vector<const linexpr0*>&, const abstract0&) vectors have different size");
882 const linexpr0* ll[l.size()];
883 ap_dim_t dd[dim.size()];
884 for (
size_t i=0;i<l.size();i++) {
888 return substitute(m, dst, src, l.size(), dd, ll, inter);
895inline abstract0& abstract0::substitute(manager& m, ap_dim_t dim,
const texpr0& l,
const abstract0& inter)
897 const texpr0* ll = &l;
901inline abstract0& abstract0::substitute(manager& m,
size_t size,
const ap_dim_t dim[],
const texpr0 *
const l[],
const abstract0& inter)
903 a = ap_abstract0_substitute_texpr_array(m.get_ap_manager_t(),
true, a,
904 const_cast<ap_dim_t*
>(dim),
905 reinterpret_cast<ap_texpr0_t**
>(
const_cast<texpr0**
>(l)),
907 m.raise(
"apron::abstract0::substitute(manager&, size_t size, const ap_dim_t[], const texpr0 * const [], const abstract0&)");
911inline abstract0& abstract0::substitute(manager& m,
const std::vector<ap_dim_t>& dim,
const std::vector<const texpr0*>& l,
const abstract0& inter)
913 if (l.size()!=dim.size())
914 throw std::invalid_argument(
"apron::abstract0::substitute(manager&, const std::vector<ap_dim_t>&, const std::vector<const texpr0*>&, const abstract0&) vectors have different size");
915 const texpr0* ll[l.size()];
916 ap_dim_t dd[dim.size()];
917 for (
size_t i=0;i<l.size();i++) {
921 return substitute(m, l.size(), dd, ll, inter);
924inline abstract0&
substitute(manager& m, abstract0& dst,
const abstract0& src, ap_dim_t dim,
const texpr0& l,
const abstract0& inter = abstract0::null)
926 const texpr0* ll = &l;
927 return substitute(m, dst, src, 1, &dim, &ll, inter);
930inline abstract0&
substitute(manager& m, abstract0& dst,
const abstract0& src,
size_t size,
const ap_dim_t dim[],
const texpr0 *
const l[],
const abstract0& inter = abstract0::null)
933 ap_abstract0_substitute_texpr_array(m.get_ap_manager_t(),
false, src.a,
934 const_cast<ap_dim_t*
>(dim),
935 reinterpret_cast<ap_texpr0_t**
>(
const_cast<texpr0**
>(l)),
937 m.raise(
"apron::substitute((manager&, abstract0&, const abstract0&, size_t size, const ap_dim_t[], const texpr0 * const [], const abstract0&)",r);
938 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
943inline abstract0&
substitute(manager& m, abstract0& dst,
const abstract0& src,
const std::vector<ap_dim_t>& dim,
const std::vector<const texpr0*>& l,
const abstract0& inter = abstract0::null)
945 if (l.size()!=dim.size())
946 throw std::invalid_argument(
"apron::substitute(manager&, abstract0, const abstract0&, const std::vector<ap_dim_t>&, const std::vector<const texpr0*>&, const abstract0&) vectors have different size");
947 const texpr0* ll[l.size()];
948 ap_dim_t dd[dim.size()];
949 for (
size_t i=0;i<l.size();i++) {
953 return substitute(m, dst, src, l.size(), dd, ll, inter);
962inline abstract0& abstract0::forget(manager& m, ap_dim_t dim,
bool project)
964 return forget(m, 1, &dim, project);
967inline abstract0& abstract0::forget(manager& m,
size_t size,
const ap_dim_t dim[],
bool project)
969 a = ap_abstract0_forget_array(m.get_ap_manager_t(),
true, a,
970 const_cast<ap_dim_t*
>(dim),
972 m.raise(
"apron::abstract0::substitute(orget(manager&, size_t size, const ap_dim_t[], bool)");
976inline abstract0& abstract0::forget(manager& m,
const std::vector<ap_dim_t> dim,
bool project)
978 ap_dim_t dd[dim.size()];
979 for (
size_t i=0;i<dim.size();i++) dd[i] = dim[i];
980 return forget(m, dim.size(), dd, project);
983inline abstract0&
forget(manager& m, abstract0& dst,
const abstract0& src, ap_dim_t dim,
bool project =
false)
985 return forget(m, dst, src, 1, &dim, project);
988inline abstract0&
forget(manager& m, abstract0& dst,
const abstract0& src,
size_t size,
const ap_dim_t dim[],
bool project =
false)
991 ap_abstract0_forget_array(m.get_ap_manager_t(),
false, src.a,
992 const_cast<ap_dim_t*
>(dim),
994 m.raise(
"apron::forget(manager&, abstract0&, const abstract0&, size_t size, const ap_dim_t[], bool)",r);
995 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1000inline abstract0&
forget(manager& m, abstract0& dst,
const abstract0& src,
const std::vector<ap_dim_t> dim,
bool project =
false)
1002 ap_dim_t dd[dim.size()];
1003 for (
size_t i=0;i<dim.size();i++) dd[i] = dim[i];
1004 return forget(m, dst, src, dim.size(), dd, project);
1011inline abstract0& abstract0::add_dimensions(manager& m,
const dimchange& d,
bool project)
1013 a = ap_abstract0_add_dimensions(m.get_ap_manager_t(),
true, a,
1014 const_cast<ap_dimchange_t*
>(d.get_ap_dimchange_t()),
1016 m.raise(
"apron::abstract0::add_dimensions(manager&, const dimchange&, bool)");
1021inline abstract0& abstract0::remove_dimensions(manager& m,
const dimchange& d)
1023 a = ap_abstract0_remove_dimensions(m.get_ap_manager_t(),
true, a,
1024 const_cast<ap_dimchange_t*
>(d.get_ap_dimchange_t()));
1025 m.raise(
"apron::abstract0::remove_dimensions(manager&, const dimchange&)");
1029inline abstract0& abstract0::permute_dimensions(manager& m,
const dimperm& d)
1031 a = ap_abstract0_permute_dimensions(m.get_ap_manager_t(),
true, a,
1032 const_cast<ap_dimperm_t*
>(d.get_ap_dimperm_t()));
1033 m.raise(
"apron::abstract0::permute_dimensions(manager&, const dimperm&)");
1037inline abstract0&
add_dimensions(manager& m, abstract0& dst,
const abstract0& src,
const dimchange& d,
bool project =
false)
1040 ap_abstract0_add_dimensions(m.get_ap_manager_t(),
false, src.a,
1041 const_cast<ap_dimchange_t*
>(d.get_ap_dimchange_t()),
1043 m.raise(
"apron::add_dimensions(manager&, abstract0&, const abstract0&, const dimchange&, bool)",r);
1044 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1049inline abstract0&
remove_dimensions(manager& m, abstract0& dst,
const abstract0& src,
const dimchange& d)
1052 ap_abstract0_remove_dimensions(m.get_ap_manager_t(),
false, src.a,
1053 const_cast<ap_dimchange_t*
>(d.get_ap_dimchange_t()));
1054 m.raise(
"apron::remove_dimensions(manager&, abstract0&, const abstract0&, const dimchange&)",r);
1055 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1063 ap_abstract0_permute_dimensions(m.get_ap_manager_t(),
false, src.a,
1064 const_cast<ap_dimperm_t*
>(d.get_ap_dimperm_t()));
1065 m.raise(
"apron::permute_dimensions(manager&, abstract0&, const abstract0&, const dimperm&)",r);
1066 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1076inline abstract0& abstract0::expand(manager& m, ap_dim_t dim,
size_t n)
1078 a = ap_abstract0_expand(m.get_ap_manager_t(),
true, a, dim, n);
1079 m.raise(
"apron::abstract0::expand(manager&, ap_dim_t, size_t)");
1083inline abstract0&
expand(manager& m, abstract0& dst,
const abstract0& src, ap_dim_t dim,
size_t n = 1)
1085 ap_abstract0_t* r = ap_abstract0_expand(m.get_ap_manager_t(),
false, src.a, dim, n);
1086 m.raise(
"apron::expand(manager&, abstract0&, const abstract0&, ap_dim_t, size_t)",r);
1087 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1092inline abstract0& abstract0::fold(manager& m,
size_t size,
const ap_dim_t dim[])
1094 a = ap_abstract0_fold(m.get_ap_manager_t(),
true, a,
const_cast<ap_dim_t*
>(dim), size);
1095 m.raise(
"apron::abstract0::fold(manager&, size_t size, const ap_dim_t[])");
1099inline abstract0& abstract0::fold(manager& m,
const std::vector<ap_dim_t>& dim)
1101 ap_dim_t dd[dim.size()];
1102 for (
size_t i=0;i<dim.size();i++) dd[i] = dim[i];
1103 return fold(m, dim.size(), dd);
1106inline abstract0&
fold(manager& m, abstract0& dst,
const abstract0& src,
size_t size,
const ap_dim_t dim[])
1109 ap_abstract0_fold(m.get_ap_manager_t(),
false, src.a,
const_cast<ap_dim_t*
>(dim), size);
1110 m.raise(
"apron::fold(manager&, abstract0&, const abstract0&, size_t size, const ap_dim_t[])",r);
1111 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1116inline abstract0&
fold(manager& m, abstract0& dst,
const abstract0& src,
const std::vector<ap_dim_t>& dim)
1118 ap_dim_t dd[dim.size()];
1119 for (
size_t i=0;i<dim.size();i++) dd[i] = dim[i];
1120 return fold(m, dst, src, dim.size(), dd);
1127inline abstract0&
widening(manager& m, abstract0& dst,
const abstract0& x,
const abstract0& y)
1129 ap_abstract0_t* r = ap_abstract0_widening(m.get_ap_manager_t(), x.a, y.a);
1130 m.raise(
"apron::wideningg(manager&, abstract0&, const abstract0&, const abstract0&)",r);
1131 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1136inline abstract0&
widening(manager& m, abstract0& dst,
const abstract0& x,
const abstract0& y,
const lincons0_array& l)
1139 ap_abstract0_widening_threshold(m.get_ap_manager_t(), x.a, y.a,
1140 const_cast<ap_lincons0_array_t*
>(l.get_ap_lincons0_array_t()));
1141 m.raise(
"apron::widening(manager&, abstract0&, const abstract0&, const abstract0&, const lincons0_array&)",r);
1142 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1151inline abstract0& abstract0::closure(manager& m)
1153 a = ap_abstract0_closure(m.get_ap_manager_t(),
true, a);
1154 m.raise(
"apron::abstract0::closured(manager&)");
1158inline abstract0&
closure(manager& m, abstract0& dst,
const abstract0& src)
1160 ap_abstract0_t* r = ap_abstract0_closure(m.get_ap_manager_t(),
false, src.a);
1161 m.raise(
"apron::closure(manager&, abstract0&, const abstract0&)",r);
1162 ap_abstract0_free(m.get_ap_manager_t(), dst.a);
1172inline ap_abstract0_t* abstract0::get_ap_abstract0_t()
1177inline const ap_abstract0_t* abstract0::get_ap_abstract0_t()
const
bool operator==(const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:409
abstract0 & add_dimensions(manager &m, abstract0 &dst, const abstract0 &src, const dimchange &d, bool project=false)
Definition apxx_abstract0_inline.hh:1037
void printdiff(manager &m, const abstract0 &x, const abstract0 &y, char **name_of_dim=NULL, FILE *stream=stdout)
Definition apxx_abstract0_inline.hh:280
abstract0 & add_rays(manager &m, abstract0 &dst, const abstract0 &x, const generator0_array &y)
Definition apxx_abstract0_inline.hh:644
abstract0 & forget(manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, bool project=false)
Definition apxx_abstract0_inline.hh:983
abstract0 & expand(manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, size_t n=1)
Definition apxx_abstract0_inline.hh:1083
bool operator<=(const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:421
abstract0 & remove_dimensions(manager &m, abstract0 &dst, const abstract0 &src, const dimchange &d)
Definition apxx_abstract0_inline.hh:1049
bool operator>(const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:433
abstract0 & join(manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:560
bool operator<(const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:438
abstract0 & substitute(manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, const linexpr0 &l, const abstract0 &inter=abstract0::null)
Definition apxx_abstract0_inline.hh:859
abstract0 & meet(manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:518
abstract0 & assign(manager &m, abstract0 &dst, const abstract0 &src, ap_dim_t dim, const linexpr0 &l, const abstract0 &inter=abstract0::null)
Definition apxx_abstract0_inline.hh:728
abstract0 & fold(manager &m, abstract0 &dst, const abstract0 &src, size_t size, const ap_dim_t dim[])
Definition apxx_abstract0_inline.hh:1106
abstract0 & closure(manager &m, abstract0 &dst, const abstract0 &src)
Definition apxx_abstract0_inline.hh:1158
bool operator>=(const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:428
abstract0 & deserialize(manager &m, abstract0 &dst, const std::string &s, size_t *eaten=NULL)
Definition apxx_abstract0_inline.hh:313
bool operator!=(const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:416
std::ostream & operator<<(std::ostream &os, const abstract0 &s)
Definition apxx_abstract0_inline.hh:292
abstract0 & widening(manager &m, abstract0 &dst, const abstract0 &x, const abstract0 &y)
Definition apxx_abstract0_inline.hh:1127
abstract0 & permute_dimensions(manager &m, abstract0 &dst, const abstract0 &src, const dimperm &d)
Definition apxx_abstract0_inline.hh:1060