Inkscape
Vector Graphics Editor
|
Namespaces | |
namespace | detail |
namespace | ordering |
Classes | |
struct | coefficient |
struct | coefficient< 0, Polynomial< CoeffT > > |
struct | coefficient< N, Polynomial< CoeffT > > |
class | Matrix |
struct | monomial |
struct | monomial< 0, CoeffT > |
class | MultiPoly |
struct | mvdegree |
struct | mvdegree< N, CoeffT, ordering::lex > |
struct | mvpoly |
struct | mvpoly< 0, CoeffT > |
struct | one |
struct | one< MultiPoly< N, CoeffT >, false > |
struct | one< Polynomial< CoeffT >, false > |
struct | one< T, true > |
class | Polynomial |
struct | rank |
struct | rank< Polynomial< CoeffT > > |
struct | zero |
struct | zero< MultiPoly< N, CoeffT >, false > |
struct | zero< Polynomial< CoeffT >, false > |
struct | zero< T, true > |
Typedefs | |
typedef MultiPoly< 1, double > | MVPoly1 |
typedef MultiPoly< 2, double > | MVPoly2 |
typedef MultiPoly< 3, double > | MVPoly3 |
typedef std::array< MVPoly1, 3 > | poly_vector_type |
typedef std::array< poly_vector_type, 2 > | basis_type |
typedef std::array< double, 3 > | coeff_vector_type |
typedef std::valarray< size_t > | multi_index_type |
Functions | |
template<typename Coeff > | |
Coeff | determinant_minor (Matrix< Coeff > const &M) |
Recursive determinant for small matrices having at least one symbolic entry. | |
void | make_initial_basis (basis_type &b, MVPoly1 const &p, MVPoly1 const &q) |
void | microbasis (basis_type &b, MVPoly1 const &p, MVPoly1 const &q) |
void | basis_to_poly (MVPoly3 &p0, poly_vector_type const &v) |
Matrix< MVPoly2 > | make_bezout_matrix (MVPoly3 const &p, MVPoly3 const &q) |
Matrix< MVPoly2 > | make_bezout_main_minor (MVPoly3 const &p, MVPoly3 const &q, size_t h) |
template<typename Coeff , typename charT > | |
std::basic_ostream< charT > & | operator<< (std::basic_ostream< charT > &os, const Matrix< Coeff > &_matrix) |
template<size_t N, typename CoeffT , typename T > | |
void | polynomial_matrix_evaluate (Matrix< T > &A, Matrix< MultiPoly< N, CoeffT > > const &M, std::array< T, N > const &X) |
void | polynomial_matrix_evaluate (NL::Matrix &A, Matrix< MultiPoly< 2, double > > const &M, Point const &P) |
multi_index_type | multi_index_zero (size_t N) |
BOOST_PP_REPEAT_FROM_TO (0, GEOM_SL_MAX_RANK, GEOM_SL_MAKE_MULTI_INDEX, unused) template< size_t N > inline multi_index_type make_multi_index(size_t i | |
multi_index_type | I (N) |
multi_index_type | shift (multi_index_type const &I, size_t i=1) |
bool | is_equal (multi_index_type const &I, multi_index_type const &J) |
template<typename charT > | |
std::basic_ostream< charT > & | operator<< (std::basic_ostream< charT > &os, const Geom::SL::multi_index_type &I) |
template<typename charT , size_t N, typename CoeffT > | |
std::basic_ostream< charT > & | operator<< (std::basic_ostream< charT > &os, const MultiPoly< N, CoeffT > &p) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator<< (MultiPoly< N, CoeffT > const &p, multi_index_type const &I) |
template<size_t M, size_t N, typename CoeffT > | |
std::enable_if_t<(M > 0) &&(M<=N), MultiPoly< N, CoeffT > > | operator+ (MultiPoly< N, CoeffT > const &p, MultiPoly< M, CoeffT > const &q) |
template<size_t M, size_t N, typename CoeffT > | |
std::enable_if_t<(N > 0) &&(M > N), MultiPoly< M, CoeffT > > | operator+ (MultiPoly< N, CoeffT > const &p, MultiPoly< M, CoeffT > const &q) |
template<size_t M, size_t N, typename CoeffT > | |
std::enable_if_t<(M > 0) &&(M<=N), MultiPoly< N, CoeffT > > | operator- (MultiPoly< N, CoeffT > const &p, MultiPoly< M, CoeffT > const &q) |
template<size_t M, size_t N, typename CoeffT > | |
std::enable_if_t<(N > 0) &&(M > N), MultiPoly< M, CoeffT > > | operator- (MultiPoly< N, CoeffT > const &p, MultiPoly< M, CoeffT > const &q) |
template<size_t M, size_t N, typename CoeffT > | |
std::enable_if_t<(M > 0) &&(M<=N), MultiPoly< N, CoeffT > > | operator* (MultiPoly< N, CoeffT > const &p, MultiPoly< M, CoeffT > const &q) |
template<size_t M, size_t N, typename CoeffT > | |
std::enable_if_t<(N > 0) &&(M > N), MultiPoly< M, CoeffT > > | operator* (MultiPoly< N, CoeffT > const &p, MultiPoly< M, CoeffT > const &q) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator+ (MultiPoly< N, CoeffT > const &p, CoeffT const &c) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator+ (CoeffT const &c, MultiPoly< N, CoeffT > const &p) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator- (MultiPoly< N, CoeffT > const &p, CoeffT const &c) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator- (CoeffT const &c, MultiPoly< N, CoeffT > const &p) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator* (MultiPoly< N, CoeffT > const &p, CoeffT const &c) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator* (CoeffT const &c, MultiPoly< N, CoeffT > const &p) |
template<size_t N, typename CoeffT > | |
MultiPoly< N, CoeffT > | operator/ (MultiPoly< N, CoeffT > const &p, CoeffT const &c) |
template<typename CoeffT > | |
bool | operator== (Polynomial< CoeffT > const &p, Polynomial< CoeffT > const &q) |
template<typename CoeffT > | |
bool | operator!= (Polynomial< CoeffT > const &p, Polynomial< CoeffT > const &q) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator+ (Polynomial< CoeffT > const &p, Polynomial< CoeffT > const &q) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator- (Polynomial< CoeffT > const &p, Polynomial< CoeffT > const &q) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator* (Polynomial< CoeffT > const &p, Polynomial< CoeffT > const &q) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator<< (Polynomial< CoeffT > const &p, size_t n) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator+ (Polynomial< CoeffT > const &p, CoeffT const &c) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator+ (CoeffT const &c, Polynomial< CoeffT > const &p) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator- (Polynomial< CoeffT > const &p, CoeffT const &c) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator- (CoeffT const &c, Polynomial< CoeffT > const &p) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator* (Polynomial< CoeffT > const &p, CoeffT const &c) |
template<typename CoeffT > | |
Polynomial< CoeffT > | operator* (CoeffT const &c, Polynomial< CoeffT > const &p) |
template<typename charT , typename CoeffT > | |
std::basic_ostream< charT > & | operator<< (std::basic_ostream< charT > &os, const Polynomial< CoeffT > &p) |
Variables | |
size_t | v |
I [i] = v | |
typedef std::array<poly_vector_type, 2> Geom::SL::basis_type |
Definition at line 54 of file implicit.h.
typedef std::array<double, 3> Geom::SL::coeff_vector_type |
Definition at line 55 of file implicit.h.
typedef std::valarray<size_t> Geom::SL::multi_index_type |
Definition at line 85 of file multi-index.h.
typedef MultiPoly<1, double> Geom::SL::MVPoly1 |
Definition at line 50 of file implicit.h.
typedef MultiPoly<2, double> Geom::SL::MVPoly2 |
Definition at line 51 of file implicit.h.
typedef MultiPoly<3, double> Geom::SL::MVPoly3 |
Definition at line 52 of file implicit.h.
typedef std::array<MVPoly1, 3> Geom::SL::poly_vector_type |
Definition at line 53 of file implicit.h.
|
inline |
Definition at line 226 of file implicit.h.
References Geom::SL::detail::poly1_to_poly3(), and v.
Geom::SL::BOOST_PP_REPEAT_FROM_TO | ( | 0 | , |
GEOM_SL_MAX_RANK | , | ||
GEOM_SL_MAKE_MULTI_INDEX | , | ||
unused | |||
) |
Coeff Geom::SL::determinant_minor | ( | Matrix< Coeff > const & | M | ) |
Recursive determinant for small matrices having at least one symbolic entry.
The basic algorithm, known as Laplace-expansion, is enhanced by some bookkeeping to avoid calculation of the same submatrices ("minors") more than once. According to W.M.Gentleman and S.C.Johnson this algorithm is better than elimination schemes for matrices of sparse multivariate polynomials and also for matrices of dense univariate polynomials if the matrix' dimesion is larger than 7.
Definition at line 45 of file determinant-minor.h.
References c, Geom::SL::Matrix< Coeff >::columns(), Geom::det(), and Geom::SL::Matrix< Coeff >::rows().
multi_index_type Geom::SL::I | ( | N | ) |
|
inline |
Definition at line 126 of file multi-index.h.
References I.
Matrix< MVPoly2 > Geom::SL::make_bezout_main_minor | ( | MVPoly3 const & | p, |
MVPoly3 const & | q, | ||
size_t | h | ||
) |
Definition at line 293 of file implicit.h.
References Geom::SL::MultiPoly< N, CoeffT >::coefficient(), Geom::SL::MultiPoly< N, CoeffT >::get_poly(), Geom::SL::Polynomial< CoeffT >::real_degree(), and v.
Definition at line 254 of file implicit.h.
References Geom::SL::MultiPoly< N, CoeffT >::coefficient(), Geom::SL::MultiPoly< N, CoeffT >::get_poly(), and Geom::SL::Polynomial< CoeffT >::real_degree().
|
inline |
Definition at line 116 of file implicit.h.
Referenced by microbasis().
|
inline |
Definition at line 146 of file implicit.h.
References Geom::SL::detail::deg(), Geom::SL::MultiPoly< N, CoeffT >::get_poly(), make_initial_basis(), n1, and Geom::SL::Polynomial< CoeffT >::real_degree().
|
inline |
Definition at line 90 of file multi-index.h.
References N.
Referenced by Geom::SL::MultiPoly< N, CoeffT >::operator+=(), Geom::SL::MultiPoly< N, CoeffT >::operator-=(), Geom::SL::MultiPoly< N, CoeffT >::operator=(), Geom::SL::MultiPoly< N, CoeffT >::trailing_coefficient(), and Geom::SL::MultiPoly< N, CoeffT >::trailing_coefficient().
|
inline |
Definition at line 417 of file polynomial.h.
|
inline |
Definition at line 601 of file multipoly.h.
References c.
|
inline |
Definition at line 515 of file polynomial.h.
References c.
|
inline |
Definition at line 592 of file multipoly.h.
References c.
|
inline |
Definition at line 531 of file multipoly.h.
|
inline |
Definition at line 542 of file multipoly.h.
|
inline |
Definition at line 505 of file polynomial.h.
References c.
|
inline |
Definition at line 445 of file polynomial.h.
|
inline |
Definition at line 565 of file multipoly.h.
References c.
|
inline |
Definition at line 479 of file polynomial.h.
References c.
|
inline |
Definition at line 556 of file multipoly.h.
References c.
|
inline |
Definition at line 486 of file multipoly.h.
|
inline |
Definition at line 497 of file multipoly.h.
|
inline |
Definition at line 469 of file polynomial.h.
References c.
|
inline |
Definition at line 425 of file polynomial.h.
|
inline |
Definition at line 583 of file multipoly.h.
References c.
|
inline |
Definition at line 497 of file polynomial.h.
References c.
|
inline |
Definition at line 574 of file multipoly.h.
References c.
|
inline |
Definition at line 508 of file multipoly.h.
|
inline |
Definition at line 519 of file multipoly.h.
|
inline |
Definition at line 487 of file polynomial.h.
References c.
|
inline |
Definition at line 435 of file polynomial.h.
|
inline |
Definition at line 611 of file multipoly.h.
References c.
|
inline |
Definition at line 451 of file multipoly.h.
|
inline |
Definition at line 445 of file polynomial.h.
|
inline |
Definition at line 126 of file multi-index.h.
|
inline |
|
inline |
Definition at line 451 of file multipoly.h.
References Geom::operator<<().
|
inline |
Definition at line 515 of file polynomial.h.
|
inline |
Definition at line 404 of file polynomial.h.
References Geom::operator==(), and Geom::SL::Polynomial< CoeffT >::real_degree().
void Geom::SL::polynomial_matrix_evaluate | ( | Matrix< T > & | A, |
Matrix< MultiPoly< N, CoeffT > > const & | M, | ||
std::array< T, N > const & | X | ||
) |
Definition at line 135 of file matrix.h.
References Geom::SL::Matrix< Coeff >::resize(), and Geom::X.
|
inline |
|
inline |
Definition at line 117 of file multi-index.h.
Referenced by Geom::SL::coefficient< N, Polynomial< CoeffT > >::set_safe_impl().
return Geom::SL::I = v |
Definition at line 110 of file multi-index.h.
Referenced by Geom::SL::MultiPoly< N, CoeffT >::coefficient(), Geom::SL::MultiPoly< N, CoeffT >::coefficient(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::get(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::get(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::get(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::get(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::get_impl(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::get_impl(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::get_impl(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::get_impl(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::get_safe(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::get_safe(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::get_safe_impl(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::get_safe_impl(), is_equal(), Geom::SL::monomial< N, CoeffT >::make(), Geom::SL::monomial< N, CoeffT >::make_impl(), Geom::SL::mvpoly< N, CoeffT >::max_degree(), Geom::SL::mvpoly< N, CoeffT >::max_degree_impl(), Geom::SL::MultiPoly< N, CoeffT >::MultiPoly(), Geom::SL::MultiPoly< N, CoeffT >::operator()(), Geom::SL::MultiPoly< N, CoeffT >::operator()(), Geom::SL::MultiPoly< N, CoeffT >::operator+=(), Geom::SL::MultiPoly< N, CoeffT >::operator-=(), Geom::SL::MultiPoly< N, CoeffT >::operator<<=(), Geom::SL::MultiPoly< N, CoeffT >::operator=(), Geom::SL::detail::poly1_to_poly3(), Geom::SL::mvpoly< N, CoeffT >::real_degree(), Geom::SL::mvpoly< N, CoeffT >::real_degree_impl(), Geom::SL::MultiPoly< N, CoeffT >::select(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::set_safe(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::set_safe(), Geom::SL::coefficient< N, Polynomial< CoeffT > >::set_safe_impl(), Geom::SL::coefficient< 0, Polynomial< CoeffT > >::set_safe_impl(), shift(), Geom::SL::mvpoly< N, CoeffT >::shift(), and Geom::SL::mvpoly< N, CoeffT >::shift_impl().
size_t Geom::SL::v |
Definition at line 104 of file multi-index.h.
Referenced by basis_to_poly(), and make_bezout_main_minor().