Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign Class Reference
[C++ Language Interface]

Scalar product sign function object depending on topology. More...

#include <Scalar_Products.defs.hh>

List of all members.

Public Member Functions

 Topology_Adjusted_Scalar_Product_Sign (const Constraint &c)
 Constructs the function object according to the topology of c.
 Topology_Adjusted_Scalar_Product_Sign (const Generator &g)
 Constructs the function object according to the topology of g.
int operator() (const Constraint &, const Generator &) const
 Computes the (topology adjusted) scalar product sign of c and g.
int operator() (const Generator &, const Constraint &) const
 Computes the (topology adjusted) scalar product sign of g and c.

Private Types

typedef int(* SPS_type )(const Linear_Row &, const Linear_Row &)
 The type of the scalar product sign function pointer.

Private Attributes

SPS_type sps_fp
 The scalar product sign function pointer.


Detailed Description

Scalar product sign function object depending on topology.

Definition at line 175 of file Scalar_Products.defs.hh.


Member Typedef Documentation

The type of the scalar product sign function pointer.


Constructor & Destructor Documentation

Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign ( const Constraint c  )  [inline]

Constructs the function object according to the topology of c.

Definition at line 129 of file Scalar_Products.inlines.hh.

00130   : sps_fp(c.is_necessarily_closed()
00131            ? static_cast<SPS_type>(&Scalar_Products::sign)
00132            : static_cast<SPS_type>(&Scalar_Products::reduced_sign)) {
00133 }

Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::Topology_Adjusted_Scalar_Product_Sign ( const Generator g  )  [inline]

Constructs the function object according to the topology of g.

Definition at line 137 of file Scalar_Products.inlines.hh.

00138   : sps_fp(g.is_necessarily_closed()
00139            ? static_cast<SPS_type>(&Scalar_Products::sign)
00140            : static_cast<SPS_type>(&Scalar_Products::reduced_sign)) {
00141 }


Member Function Documentation

int Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::operator() ( const Constraint c,
const Generator g 
) const [inline]

Computes the (topology adjusted) scalar product sign of c and g.

Definition at line 144 of file Scalar_Products.inlines.hh.

References Parma_Polyhedra_Library::Linear_Row::is_necessarily_closed(), Parma_Polyhedra_Library::Scalar_Products::reduced_sign(), Parma_Polyhedra_Library::Scalar_Products::sign(), Parma_Polyhedra_Library::Generator::space_dimension(), Parma_Polyhedra_Library::Constraint::space_dimension(), and sps_fp.

00145                                                                             {
00146   assert(c.space_dimension() <= g.space_dimension());
00147   assert(sps_fp == (c.is_necessarily_closed()
00148                     ? static_cast<SPS_type>(&Scalar_Products::sign)
00149                     : static_cast<SPS_type>(&Scalar_Products::reduced_sign)));
00150   return sps_fp(static_cast<const Linear_Row&>(c),
00151                 static_cast<const Linear_Row&>(g));
00152 }

int Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::operator() ( const Generator g,
const Constraint c 
) const [inline]

Computes the (topology adjusted) scalar product sign of g and c.

Definition at line 155 of file Scalar_Products.inlines.hh.

References Parma_Polyhedra_Library::Linear_Row::is_necessarily_closed(), Parma_Polyhedra_Library::Scalar_Products::reduced_sign(), Parma_Polyhedra_Library::Scalar_Products::sign(), Parma_Polyhedra_Library::Constraint::space_dimension(), Parma_Polyhedra_Library::Generator::space_dimension(), and sps_fp.

00156                                                                              {
00157   assert(g.space_dimension() <= c.space_dimension());
00158   assert(sps_fp == (g.is_necessarily_closed()
00159                     ? static_cast<SPS_type>(&Scalar_Products::sign)
00160                     : static_cast<SPS_type>(&Scalar_Products::reduced_sign)));
00161   return sps_fp(static_cast<const Linear_Row&>(g),
00162                 static_cast<const Linear_Row&>(c));
00163 }


Member Data Documentation

The scalar product sign function pointer.

Definition at line 192 of file Scalar_Products.defs.hh.

Referenced by operator()().


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

Generated on Sat Oct 11 10:41:09 2008 for PPL by  doxygen 1.5.6