#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 175 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 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 }
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 }
The scalar product sign function pointer.
Definition at line 192 of file Scalar_Products.defs.hh.
Referenced by operator()().