#include <Partially_Reduced_Product.defs.hh>
Public Member Functions | |
| Smash_Reduction () | |
| Default constructor. | |
| void | product_reduce (D1 &d1, D2 &d2) |
| ~Smash_Reduction () | |
| Destructor. | |
The reduction classes are used to instantiate the Partially_Reduced_Product domain. This class propagates emptiness between its components.
Definition at line 92 of file Partially_Reduced_Product.defs.hh.
| Parma_Polyhedra_Library::Smash_Reduction< D1, D2 >::Smash_Reduction | ( | ) | [inline] |
| Parma_Polyhedra_Library::Smash_Reduction< D1, D2 >::~Smash_Reduction | ( | ) | [inline] |
| void Parma_Polyhedra_Library::Smash_Reduction< D1, D2 >::product_reduce | ( | D1 & | d1, | |
| D2 & | d2 | |||
| ) | [inline] |
brief The smash reduction operator for propagating emptiness between the domain elements d1 and d2.
If either of the the domain elements d1 or d2 is empty then the other is also set empty.
| d1 | A pointset domain element; | |
| d2 | A pointset domain element; |
Definition at line 451 of file Partially_Reduced_Product.templates.hh.
References Parma_Polyhedra_Library::EMPTY, and Parma_Polyhedra_Library::swap().
00451 { 00452 if (d2.is_empty()) { 00453 if (!d1.is_empty()) { 00454 D1 new_d1(d1.space_dimension(), EMPTY); 00455 std::swap(d1, new_d1); 00456 } 00457 } 00458 else if (d1.is_empty()) { 00459 D2 new_d2(d2.space_dimension(), EMPTY); 00460 std::swap(d2, new_d2); 00461 } 00462 }
1.5.6