PPL
1.2
|
A class implementing various scalar product functions. More...
#include <Scalar_Products_defs.hh>
Static Public Member Functions | |
static void | assign (Coefficient &z, const Linear_Expression &x, const Linear_Expression &y) |
Computes the scalar product of x and y and assigns it to z . More... | |
static void | assign (Coefficient &z, const Constraint &c, const Generator &g) |
Computes the scalar product of c and g and assigns it to z . More... | |
static void | assign (Coefficient &z, const Generator &g, const Constraint &c) |
Computes the scalar product of g and c and assigns it to z . More... | |
static void | assign (Coefficient &z, const Constraint &c, const Grid_Generator &gg) |
Computes the scalar product of c and g and assigns it to z . More... | |
static void | assign (Coefficient &z, const Grid_Generator &gg, const Congruence &cg) |
Computes the scalar product of g and cg and assigns it to z . More... | |
static void | assign (Coefficient &z, const Congruence &cg, const Grid_Generator &gg) |
Computes the scalar product of cg and g and assigns it to z . More... | |
static int | sign (const Linear_Expression &x, const Linear_Expression &y) |
Returns the sign of the scalar product between x and y . More... | |
static int | sign (const Constraint &c, const Generator &g) |
Returns the sign of the scalar product between c and g . More... | |
static int | sign (const Generator &g, const Constraint &c) |
Returns the sign of the scalar product between g and c . More... | |
static int | sign (const Constraint &c, const Grid_Generator &g) |
Returns the sign of the scalar product between c and g . More... | |
static void | reduced_assign (Coefficient &z, const Linear_Expression &x, const Linear_Expression &y) |
Computes the reduced scalar product of x and y , where the ![]() x is ignored, and assigns the result to z . More... | |
static void | reduced_assign (Coefficient &z, const Constraint &c, const Generator &g) |
Computes the reduced scalar product of c and g , where the ![]() c is ignored, and assigns the result to z . More... | |
static void | reduced_assign (Coefficient &z, const Generator &g, const Constraint &c) |
Computes the reduced scalar product of g and c , where the ![]() g is ignored, and assigns the result to z . More... | |
static void | reduced_assign (Coefficient &z, const Grid_Generator &gg, const Congruence &cg) |
Computes the reduced scalar product of g and cg , where the ![]() g is ignored, and assigns the result to z . More... | |
static int | reduced_sign (const Linear_Expression &x, const Linear_Expression &y) |
Returns the sign of the reduced scalar product of x and y , where the ![]() x is ignored. More... | |
static int | reduced_sign (const Constraint &c, const Generator &g) |
Returns the sign of the reduced scalar product of c and g , where the ![]() c is ignored. More... | |
static int | reduced_sign (const Generator &g, const Constraint &c) |
Returns the sign of the reduced scalar product of g and c , where the ![]() g is ignored. More... | |
static void | homogeneous_assign (Coefficient &z, const Linear_Expression &x, const Linear_Expression &y) |
Computes the homogeneous scalar product of x and y , where the inhomogeneous terms are ignored, and assigns the result to z . More... | |
static void | homogeneous_assign (Coefficient &z, const Linear_Expression &e, const Generator &g) |
Computes the homogeneous scalar product of e and g , where the inhomogeneous terms are ignored, and assigns the result to z . More... | |
static void | homogeneous_assign (Coefficient &z, const Grid_Generator &gg, const Constraint &c) |
Computes the homogeneous scalar product of gg and c , where the inhomogeneous terms are ignored, and assigns the result to z . More... | |
static void | homogeneous_assign (Coefficient &z, const Grid_Generator &gg, const Congruence &cg) |
Computes the homogeneous scalar product of g and cg , where the inhomogeneous terms are ignored, and assigns the result to z . More... | |
static void | homogeneous_assign (Coefficient &z, const Linear_Expression &e, const Grid_Generator &g) |
Computes the homogeneous scalar product of e and g , where the inhomogeneous terms are ignored, and assigns the result to z . More... | |
static int | homogeneous_sign (const Linear_Expression &x, const Linear_Expression &y) |
Returns the sign of the homogeneous scalar product of x and y , where the inhomogeneous terms are ignored. More... | |
static int | homogeneous_sign (const Linear_Expression &e, const Generator &g) |
Returns the sign of the homogeneous scalar product of e and g , where the inhomogeneous terms are ignored. More... | |
static int | homogeneous_sign (const Linear_Expression &e, const Grid_Generator &g) |
Returns the sign of the homogeneous scalar product of e and g , where the inhomogeneous terms are ignored,. More... | |
static int | homogeneous_sign (const Grid_Generator &g, const Constraint &c) |
Returns the sign of the homogeneous scalar product of g and c , where the inhomogeneous terms are ignored,. More... | |
A class implementing various scalar product functions.
When computing the scalar product of (Linear_Expression or Constraint or Generator) objects x
and y
, it is assumed that the space dimension of the first object x
is less than or equal to the space dimension of the second object y
.
Definition at line 44 of file Scalar_Products_defs.hh.
|
static |
Computes the scalar product of x
and y
and assigns it to z
.
Definition at line 32 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign().
Referenced by Parma_Polyhedra_Library::Grid_Generator_System::affine_image(), Parma_Polyhedra_Library::Generator_System::affine_image(), Parma_Polyhedra_Library::Polyhedron::conversion(), Parma_Polyhedra_Library::Polyhedron::relation_with(), Parma_Polyhedra_Library::Grid::relation_with(), Parma_Polyhedra_Library::Congruence_System::satisfies_all_congruences(), sign(), and Parma_Polyhedra_Library::Grid::simplify_using_context_assign().
|
static |
Computes the scalar product of c
and g
and assigns it to z
.
Definition at line 39 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Boundary_NS::assign(), Parma_Polyhedra_Library::Constraint::expr, and Parma_Polyhedra_Library::Generator::expr.
|
static |
Computes the scalar product of g
and c
and assigns it to z
.
Definition at line 45 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Boundary_NS::assign(), Parma_Polyhedra_Library::Constraint::expr, and Parma_Polyhedra_Library::Generator::expr.
|
static |
Computes the scalar product of c
and g
and assigns it to z
.
Definition at line 57 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Boundary_NS::assign(), Parma_Polyhedra_Library::Constraint::expr, and Parma_Polyhedra_Library::Grid_Generator::expr.
|
static |
Computes the scalar product of g
and cg
and assigns it to z
.
Definition at line 51 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Congruence::expr, Parma_Polyhedra_Library::Grid_Generator::expr, Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), and Parma_Polyhedra_Library::Grid_Generator::space_dimension().
|
static |
Computes the scalar product of cg
and g
and assigns it to z
.
Definition at line 64 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Congruence::expr, Parma_Polyhedra_Library::Grid_Generator::expr, Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), Parma_Polyhedra_Library::Congruence::space_dimension(), and Parma_Polyhedra_Library::Grid_Generator::space_dimension().
|
static |
Computes the homogeneous scalar product of x
and y
, where the inhomogeneous terms are ignored, and assigns the result to z
.
Definition at line 93 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), and Parma_Polyhedra_Library::Linear_Expression::space_dimension().
Referenced by Parma_Polyhedra_Library::Polyhedron::frequency(), Parma_Polyhedra_Library::Grid::frequency_no_check(), homogeneous_assign(), homogeneous_sign(), Parma_Polyhedra_Library::Grid::max_min(), and Parma_Polyhedra_Library::Polyhedron::max_min().
|
inlinestatic |
Computes the homogeneous scalar product of e
and g
, where the inhomogeneous terms are ignored, and assigns the result to z
.
Definition at line 92 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Generator::expr, and homogeneous_assign().
|
static |
Computes the homogeneous scalar product of gg
and c
, where the inhomogeneous terms are ignored, and assigns the result to z
.
Definition at line 113 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Constraint::expr, Parma_Polyhedra_Library::Grid_Generator::expr, Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), Parma_Polyhedra_Library::Constraint::space_dimension(), and Parma_Polyhedra_Library::Grid_Generator::space_dimension().
|
static |
Computes the homogeneous scalar product of g
and cg
, where the inhomogeneous terms are ignored, and assigns the result to z
.
Definition at line 103 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Congruence::expr, Parma_Polyhedra_Library::Grid_Generator::expr, Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), Parma_Polyhedra_Library::Congruence::space_dimension(), and Parma_Polyhedra_Library::Grid_Generator::space_dimension().
|
inlinestatic |
Computes the homogeneous scalar product of e
and g
, where the inhomogeneous terms are ignored, and assigns the result to z
.
Definition at line 99 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Grid_Generator::expr, and homogeneous_assign().
|
inlinestatic |
Returns the sign of the homogeneous scalar product of x
and y
, where the inhomogeneous terms are ignored.
Definition at line 51 of file Scalar_Products_inlines.hh.
References homogeneous_assign(), PPL_DIRTY_TEMP_COEFFICIENT, and Parma_Polyhedra_Library::Boundary_NS::sgn().
Referenced by Parma_Polyhedra_Library::Polyhedron::bounds(), Parma_Polyhedra_Library::Grid::bounds_no_check(), and homogeneous_sign().
|
inlinestatic |
Returns the sign of the homogeneous scalar product of e
and g
, where the inhomogeneous terms are ignored.
Definition at line 106 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Generator::expr, and homogeneous_sign().
|
inlinestatic |
Returns the sign of the homogeneous scalar product of e
and g
, where the inhomogeneous terms are ignored,.
Definition at line 112 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Grid_Generator::expr, and homogeneous_sign().
|
inlinestatic |
Returns the sign of the homogeneous scalar product of g
and c
, where the inhomogeneous terms are ignored,.
Definition at line 118 of file Scalar_Products_inlines.hh.
References homogeneous_assign(), PPL_DIRTY_TEMP_COEFFICIENT, and Parma_Polyhedra_Library::Boundary_NS::sgn().
|
static |
Computes the reduced scalar product of x
and y
, where the coefficient of
x
is ignored, and assigns the result to z
.
Definition at line 73 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), and Parma_Polyhedra_Library::Linear_Expression::space_dimension().
Referenced by reduced_sign().
|
static |
Computes the reduced scalar product of c
and g
, where the coefficient of
c
is ignored, and assigns the result to z
.
|
static |
Computes the reduced scalar product of g
and c
, where the coefficient of
g
is ignored, and assigns the result to z
.
|
static |
Computes the reduced scalar product of g
and cg
, where the coefficient of
g
is ignored, and assigns the result to z
.
Definition at line 83 of file Scalar_Products.cc.
References Parma_Polyhedra_Library::Congruence::expr, Parma_Polyhedra_Library::Grid_Generator::expr, Parma_Polyhedra_Library::Linear_Expression::scalar_product_assign(), Parma_Polyhedra_Library::Congruence::space_dimension(), and Parma_Polyhedra_Library::Grid_Generator::space_dimension().
|
inlinestatic |
Returns the sign of the reduced scalar product of x
and y
, where the coefficient of
x
is ignored.
Definition at line 43 of file Scalar_Products_inlines.hh.
References PPL_DIRTY_TEMP_COEFFICIENT, reduced_assign(), and Parma_Polyhedra_Library::Boundary_NS::sgn().
Referenced by Parma_Polyhedra_Library::Polyhedron::BHZ09_NNC_poly_hull_assign_if_exact(), Parma_Polyhedra_Library::Polyhedron::is_included_in(), Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::operator()(), reduced_sign(), Parma_Polyhedra_Library::Generator_System::relation_with(), and Parma_Polyhedra_Library::Grid::relation_with().
|
inlinestatic |
Returns the sign of the reduced scalar product of c
and g
, where the coefficient of
c
is ignored.
Definition at line 76 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Constraint::expr, Parma_Polyhedra_Library::Generator::expr, Parma_Polyhedra_Library::Constraint::is_necessarily_closed(), and reduced_sign().
|
inlinestatic |
Returns the sign of the reduced scalar product of g
and c
, where the coefficient of
g
is ignored.
Definition at line 84 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Constraint::expr, Parma_Polyhedra_Library::Generator::expr, Parma_Polyhedra_Library::Constraint::is_necessarily_closed(), and reduced_sign().
|
inlinestatic |
Returns the sign of the scalar product between x
and y
.
Definition at line 36 of file Scalar_Products_inlines.hh.
References assign(), PPL_DIRTY_TEMP_COEFFICIENT, and Parma_Polyhedra_Library::Boundary_NS::sgn().
Referenced by Parma_Polyhedra_Library::Polyhedron::BHRZ03_combining_constraints(), Parma_Polyhedra_Library::Polyhedron::is_included_in(), Parma_Polyhedra_Library::MIP_Problem::is_satisfied(), Parma_Polyhedra_Library::MIP_Problem::is_saturated(), Parma_Polyhedra_Library::Polyhedron::OK(), Parma_Polyhedra_Library::Topology_Adjusted_Scalar_Product_Sign::operator()(), Parma_Polyhedra_Library::Generator_System::relation_with(), Parma_Polyhedra_Library::Grid::relation_with(), Parma_Polyhedra_Library::Polyhedron::select_H79_constraints(), sign(), Parma_Polyhedra_Library::Polyhedron::simplify_using_context_assign(), Parma_Polyhedra_Library::Polyhedron::update_sat_c(), and Parma_Polyhedra_Library::Polyhedron::update_sat_g().
|
inlinestatic |
Returns the sign of the scalar product between c
and g
.
Definition at line 59 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Constraint::expr, Parma_Polyhedra_Library::Generator::expr, and sign().
|
inlinestatic |
Returns the sign of the scalar product between g
and c
.
Definition at line 64 of file Scalar_Products_inlines.hh.
References Parma_Polyhedra_Library::Constraint::expr, Parma_Polyhedra_Library::Generator::expr, and sign().
|
inlinestatic |
Returns the sign of the scalar product between c
and g
.
Definition at line 69 of file Scalar_Products_inlines.hh.
References assign(), PPL_DIRTY_TEMP_COEFFICIENT, and Parma_Polyhedra_Library::Boundary_NS::sgn().