# Parma_Polyhedra_Library::Smash_Reduction< D1, D2 > Class Template Reference
[C++ Language Interface]

This class provides the reduction method for the Smash_Product domain. More...

`#include <ppl.hh>`

List of all members.

## Public Member Functions

| Smash_Reduction ()
| Default constructor.
void | product_reduce (D1 &d1, D2 &d2)
| The smash reduction operator for propagating emptiness between the domain elements `d1` and `d2`.
| ~Smash_Reduction ()
| Destructor.

## Detailed Description

### template<typename D1, typename D2>
class Parma_Polyhedra_Library::Smash_Reduction< D1, D2 >

This class provides the reduction method for the Smash_Product domain.

The reduction classes are used to instantiate the Partially_Reduced_Product domain. This class propagates emptiness between its components.

## Member Function Documentation

template<typename D1 , typename D2 >

void Parma_Polyhedra_Library::Smash_Reduction< D1, D2 >::product_reduce | ( | D1 & | d1,
|  | D2 & | d2 |
| ) |  |  | `[inline]`

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.

Parameters:

  | d1 | A pointset domain element;
  | d2 | A pointset domain element;

The documentation for this class was generated from the following file:

- ppl.hh