#include <Scalar_Products.defs.hh>
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. |
Definition at line 160 of file Scalar_Products.defs.hh.
typedef int(* Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::SPS_type)(const Linear_Row &, const Linear_Row &) [private] |
The type of the scalar product sign function pointer.
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 114 of file Scalar_Products.inlines.hh.
00115 : sps_fp(c.is_necessarily_closed() 00116 ? static_cast<SPS_type>(&Scalar_Products::sign) 00117 : static_cast<SPS_type>(&Scalar_Products::reduced_sign)) { 00118 }
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 122 of file Scalar_Products.inlines.hh.
00123 : sps_fp(g.is_necessarily_closed() 00124 ? static_cast<SPS_type>(&Scalar_Products::sign) 00125 : static_cast<SPS_type>(&Scalar_Products::reduced_sign)) { 00126 }
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 129 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.
00130 { 00131 assert(c.space_dimension() <= g.space_dimension()); 00132 assert(sps_fp == (c.is_necessarily_closed() 00133 ? static_cast<SPS_type>(&Scalar_Products::sign) 00134 : static_cast<SPS_type>(&Scalar_Products::reduced_sign))); 00135 return sps_fp(static_cast<const Linear_Row&>(c), 00136 static_cast<const Linear_Row&>(g)); 00137 }
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 140 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.
00141 { 00142 assert(g.space_dimension() <= c.space_dimension()); 00143 assert(sps_fp == (g.is_necessarily_closed() 00144 ? static_cast<SPS_type>(&Scalar_Products::sign) 00145 : static_cast<SPS_type>(&Scalar_Products::reduced_sign))); 00146 return sps_fp(static_cast<const Linear_Row&>(g), 00147 static_cast<const Linear_Row&>(c)); 00148 }
The scalar product sign function pointer.
Definition at line 177 of file Scalar_Products.defs.hh.
Referenced by operator()().