#include "config.hpp"#include <iostream>#include <list>#include <iomanip>#include <algorithm>#include <cmath>#include "frwrddecl.hpp"#include "type_traits.hpp"#include "exception.hpp"#include "refcntr.hpp"#include "iteradapt.hpp"#include "type_opers.hpp"#include "factory.hpp"#include "cmp.hpp"#include "io.hpp"#include "powerest.hpp"#include "big_int.hpp"#include "rational.hpp"#include "_utility.hpp"#include "std_import.hpp"#include "sparse_polynom.cpp"Go to the source code of this file.
Namespaces | |
| namespace | Arageli |
| namespace | std |
Classes | |
| class | Arageli::monom< F, I > |
| Monom template definition. More... | |
| struct | Arageli::type_traits< monom< F, I > > |
| struct | Arageli::factory< monom< F, I > > |
| struct | Arageli::monom_degree_less< M1, M2 > |
| Binary predicate for two monoms for degrees comparision. More... | |
| struct | Arageli::monom_degree_equal< M1, M2 > |
| Binary predicate for two monoms for equality degrees determination. More... | |
| struct | Arageli::coef_extractor< M > |
| Унарный функтор: по моному возвращает ссылку на его коэффициент. More... | |
| struct | Arageli::degree_extractor< M > |
| Унарный функтор: по моному возвращает ссылку на его степень. More... | |
| struct | Arageli::norm_monom_seq_t |
| Type for helper object norm_monom_seq. More... | |
| struct | Arageli::any_monom_seq_t |
| Type for helper object any_monom_seq. More... | |
| struct | Arageli::sparse_polynom_base |
| Base for all sparse polynomials. More... | |
| class | Arageli::sparse_polynom_base::exception |
| Exception of sparse_polynom. More... | |
| class | Arageli::sparse_polynom_base::division_by_zero |
| Возникает при делении на нулевой полином. More... | |
| class | Arageli::sparse_polynom_base::zero_in_zero_degree |
| Возникает при возвединии нулевого полинома в нулевую степень. More... | |
| class | Arageli::sparse_polynom< F, I, REFCNT > |
| struct | Arageli::sparse_polynom< F, I, REFCNT >::other_coef< F1 > |
| struct | Arageli::factory< sparse_polynom< F, I, REFCNT > > |
| struct | Arageli::type_traits< sparse_polynom< F, I, REFCNT > > |
Sorted and nonsorted helper objects. | |
| #define | _ARAGELI_POLYNOM_BINOPER(AOPER, BOPER) |
| enum | Arageli::monoms_order { Arageli::mo_inc, Arageli::mo_dec } |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > | Arageli::diff (const sparse_polynom< F, I, REFCNT > &x) |
| Pefrorms differentiation of polynomial x by common symbolic rules. | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT> | |
| std::basic_ostream< Ch, ChT > & | Arageli::output_list (std::basic_ostream< Ch, ChT > &out, const sparse_polynom< F, I, REFCNT > &x, monoms_order mo=mo_inc, const char *first_bracket=monom_output_list_first_bracket_default, const char *second_bracket=monom_output_list_second_bracket_default, const char *separator=monom_output_list_separator_default) |
| Simple outputting as monom list. | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT> | |
| std::basic_ostream< Ch, ChT > & | Arageli::output_var (std::basic_ostream< Ch, ChT > &out, const sparse_polynom< F, I, REFCNT > &x, monoms_order mo=mo_inc, const char *var=monom_output_var_var_default, const char *mul=monom_output_var_mul_default, const char *pow=monom_output_var_pow_default) |
| Outputting of polynomial with variable symbol. | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT> | |
| std::basic_istream< Ch, ChT > & | Arageli::input_list (std::basic_istream< Ch, ChT > &in, sparse_polynom< F, I, REFCNT > &x, const char *first_bracket=monom_input_list_first_bracket_default, const char *second_bracket=monom_input_list_second_bracket_default, const char *separator=monom_input_list_separator_default) |
| Simple inputting of a polynomial. | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT, typename Coef_factory> | |
| std::basic_istream< Ch, ChT > & | Arageli::input_var (std::basic_istream< Ch, ChT > &in, sparse_polynom< F, I, REFCNT > &x, const Coef_factory &fctr, const char *var=monom_input_var_var_default, const char *mul=monom_input_var_mul_default, const char *pow=monom_input_var_pow_default) |
| Inputting of a polynomial with variable symbol. | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT> | |
| std::basic_istream< Ch, ChT > & | Arageli::input_var (std::basic_istream< Ch, ChT > &in, sparse_polynom< F, I, REFCNT > &x, const char *var=monom_input_var_var_default, const char *mul=monom_input_var_mul_default, const char *pow=monom_input_var_pow_default) |
| Inputting of a polynomial with variable symbol. | |
| template<typename Ch, typename ChT, typename F, typename I, bool REFCNT> | |
| std::basic_ostream< Ch, ChT > & | Arageli::output_aligned (std::basic_ostream< Ch, ChT > &out, const sparse_polynom< F, I, REFCNT > &x, monoms_order mo=mo_inc, const char *var=monom_output_var_var_default, const char *mul=monom_output_var_mul_default, const char *pow=monom_output_var_pow_default) |
| Oputputs polynomial in aligned form. (Restricted implementation.). | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT> | |
| std::basic_ostream< Ch, ChT > & | Arageli::operator<< (std::basic_ostream< Ch, ChT > &out, const sparse_polynom< F, I, REFCNT > &x) |
| Станартный вывод полинома. Совпадает с sparse_polynom_output_var. | |
| template<typename F, typename I, bool REFCNT, typename Ch, typename ChT> | |
| std::basic_istream< Ch, ChT > & | Arageli::operator>> (std::basic_istream< Ch, ChT > &in, sparse_polynom< F, I, REFCNT > &x) |
| Станартный вывод полинома. Совпадает с sparse_polynom_input_var. | |
| static const norm_monom_seq_t | Arageli::norm_monom_seq = norm_monom_seq_t() |
| Helper object for choosing method that gives sorted monom sequence. | |
| static const any_monom_seq_t | Arageli::any_monom_seq = any_monom_seq_t() |
| Helper object for choosing method that gives unsorted monom sequence. | |
Standard comparision operators that based on cmp function. | |
| template<typename F1, typename I1, typename F2, typename I2> | |
| bool | Arageli::operator== (const monom< F1, I1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2> | |
| bool | Arageli::operator== (const monom< F1, I1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| bool | Arageli::operator== (const F1 &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| bool | Arageli::operator!= (const monom< F1, I1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2> | |
| bool | Arageli::operator!= (const monom< F1, I1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| bool | Arageli::operator!= (const F1 &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| bool | Arageli::operator<= (const monom< F1, I1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2> | |
| bool | Arageli::operator<= (const monom< F1, I1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| bool | Arageli::operator<= (const F1 &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| bool | Arageli::operator>= (const monom< F1, I1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2> | |
| bool | Arageli::operator>= (const monom< F1, I1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| bool | Arageli::operator>= (const F1 &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| bool | Arageli::operator< (const monom< F1, I1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2> | |
| bool | Arageli::operator< (const monom< F1, I1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| bool | Arageli::operator< (const F1 &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| bool | Arageli::operator> (const monom< F1, I1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2> | |
| bool | Arageli::operator> (const monom< F1, I1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| bool | Arageli::operator> (const F1 &a, const monom< F2, I2 > &b) |
Дополнительные операторы для мономов; сочетание со скаляром. | |
| template<typename F1, typename I1, typename F2, typename I2> | |
| monom< F1, I1 > | Arageli::operator+ (const monom< F1, I1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2> | |
| monom< F1, I1 > | Arageli::operator+ (const monom< F1, I1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2> | |
| monom< F2, I2 > | Arageli::operator+ (const F1 &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| monom< F1, I1 > | Arageli::operator- (const monom< F1, I1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2> | |
| monom< F1, I1 > | Arageli::operator- (const monom< F1, I1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2> | |
| monom< F2, I2 > | Arageli::operator- (const F1 &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| monom< F1, I1 > | Arageli::operator * (const monom< F1, I1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2> | |
| monom< F1, I1 > | Arageli::operator * (const monom< F1, I1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2> | |
| monom< F2, I2 > | Arageli::operator * (const F1 &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| monom< F1, I1 > | Arageli::operator/ (const monom< F1, I1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2> | |
| monom< F1, I1 > | Arageli::operator/ (const monom< F1, I1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2> | |
| monom< F2, I2 > | Arageli::operator/ (const F1 &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| monom< F1, I1 > | Arageli::operator% (const monom< F1, I1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2> | |
| monom< F1, I1 > | Arageli::operator% (const monom< F1, I1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2> | |
| monom< F2, I2 > | Arageli::operator% (const F1 &x, const monom< F2, I2 > &y) |
Дополнительные операторы для мономов; сочетание со скаляром. | |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator+ (const sparse_polynom< F1, I1, REFCNT1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator+ (const sparse_polynom< F1, I1, REFCNT1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator+ (const monom< F1, I1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator+ (const sparse_polynom< F1, I1, REFCNT1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator+ (const F1 &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator+ (const sparse_polynom< rational< F1 >, I1, REFCNT1 > &x, const rational< F1 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator+ (const rational< F1 > &x, const sparse_polynom< rational< F1 >, I1, REFCNT1 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator- (const sparse_polynom< F1, I1, REFCNT1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator- (const sparse_polynom< F1, I1, REFCNT1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator- (const monom< F1, I1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator- (const sparse_polynom< F1, I1, REFCNT1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator- (const F1 &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator- (const sparse_polynom< rational< F1 >, I1, REFCNT1 > &x, const rational< F1 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator- (const rational< F1 > &x, const sparse_polynom< rational< F1 >, I1, REFCNT1 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator * (const sparse_polynom< F1, I1, REFCNT1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator * (const sparse_polynom< F1, I1, REFCNT1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator * (const monom< F1, I1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator * (const sparse_polynom< F1, I1, REFCNT1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator * (const F1 &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator * (const sparse_polynom< rational< F1 >, I1, REFCNT1 > &x, const rational< F1 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator * (const rational< F1 > &x, const sparse_polynom< rational< F1 >, I1, REFCNT1 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator/ (const sparse_polynom< F1, I1, REFCNT1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator/ (const sparse_polynom< F1, I1, REFCNT1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator/ (const monom< F1, I1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator/ (const sparse_polynom< F1, I1, REFCNT1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator/ (const F1 &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator/ (const sparse_polynom< rational< F1 >, I1, REFCNT1 > &x, const rational< F1 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator/ (const rational< F1 > &x, const sparse_polynom< rational< F1 >, I1, REFCNT1 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator% (const sparse_polynom< F1, I1, REFCNT1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator% (const sparse_polynom< F1, I1, REFCNT1 > &x, const monom< F2, I2 > &y) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator% (const monom< F1, I1 > &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::operator% (const sparse_polynom< F1, I1, REFCNT1 > &x, const F2 &y) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| sparse_polynom< F2, I2, REFCNT2 > | Arageli::operator% (const F1 &x, const sparse_polynom< F2, I2, REFCNT2 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator% (const sparse_polynom< rational< F1 >, I1, REFCNT1 > &x, const rational< F1 > &y) |
| template<typename F1, typename I1, bool REFCNT1> | |
| sparse_polynom< rational< F1 >, I1, REFCNT1 > | Arageli::operator% (const rational< F1 > &x, const sparse_polynom< rational< F1 >, I1, REFCNT1 > &y) |
Standard comparision operators that based on cmp function. | |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator== (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| bool | Arageli::operator== (const sparse_polynom< F1, I1, REFCNT1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator== (const monom< F1, I1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| bool | Arageli::operator== (const sparse_polynom< F1, I1, REFCNT1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator== (const F1 &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator!= (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| bool | Arageli::operator!= (const sparse_polynom< F1, I1, REFCNT1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator!= (const monom< F1, I1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| bool | Arageli::operator!= (const sparse_polynom< F1, I1, REFCNT1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator!= (const F1 &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator<= (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| bool | Arageli::operator<= (const sparse_polynom< F1, I1, REFCNT1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator<= (const monom< F1, I1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| bool | Arageli::operator<= (const sparse_polynom< F1, I1, REFCNT1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator<= (const F1 &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator>= (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| bool | Arageli::operator>= (const sparse_polynom< F1, I1, REFCNT1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator>= (const monom< F1, I1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| bool | Arageli::operator>= (const sparse_polynom< F1, I1, REFCNT1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator>= (const F1 &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator< (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| bool | Arageli::operator< (const sparse_polynom< F1, I1, REFCNT1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator< (const monom< F1, I1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| bool | Arageli::operator< (const sparse_polynom< F1, I1, REFCNT1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator< (const F1 &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator> (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2> | |
| bool | Arageli::operator> (const sparse_polynom< F1, I1, REFCNT1 > &a, const monom< F2, I2 > &b) |
| template<typename F1, typename I1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator> (const monom< F1, I1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2> | |
| bool | Arageli::operator> (const sparse_polynom< F1, I1, REFCNT1 > &a, const F2 &b) |
| template<typename F1, typename F2, typename I2, bool REFCNT2> | |
| bool | Arageli::operator> (const F1 &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
Defines | |
| #define | _ARAGELI_MONOM_CMP(OPER) |
| #define | _ARAGELI_MONOM_BINOPER(AOPER, BOPER) |
| #define | _ARAGELI_SPARSE_POLYNOMIAL_CMP(OPER) |
| #define | ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_SPARSE_POLYNOM |
Functions | |
| template<typename F, typename I> | |
| bool | Arageli::is_unit (const monom< F, I > &x) |
| template<typename F, typename I> | |
| bool | Arageli::is_opposite_unit (const monom< F, I > &x) |
| template<typename F, typename I> | |
| bool | Arageli::is_null (const monom< F, I > &x) |
| template<typename F, typename I> | |
| monom< F, I > | Arageli::opposite (const monom< F, I > &x) |
| template<typename F, typename I> | |
| monom< F, I > & | Arageli::opposite (const monom< F, I > &x, monom< F, I > *y) |
| template<typename F, typename I> | |
| monom< F, I > & | Arageli::opposite (monom< F, I > *x) |
| template<typename F, typename I> | |
| monom< F, I > | Arageli::inverse (const monom< F, I > &x) |
| template<typename F, typename I> | |
| monom< F, I > & | Arageli::inverse (const monom< F, I > &x, monom< F, I > *y) |
| template<typename F, typename I> | |
| monom< F, I > & | Arageli::inverse (monom< F, I > *x) |
| template<typename F, typename I> | |
| std::ostream & | Arageli::output_polynom_first (std::ostream &out, const monom< F, I > &x) |
| template<typename F, typename I> | |
| std::ostream & | Arageli::output_polynom_internal (std::ostream &out, const monom< F, I > &x) |
| template<typename F, typename I> | |
| std::ostream & | Arageli::output_pow (std::ostream &out, const monom< F, I > &x) |
| template<typename F, typename I> | |
| std::istream & | Arageli::input_polynom_first (std::istream &in, monom< F, I > &x) |
| template<typename F, typename I> | |
| std::istream & | Arageli::input_polynom_internal (std::istream &in, monom< F, I > &x) |
| template<typename F, typename I> | |
| std::istream & | Arageli::input_pow (std::istream &in, monom< F, I > &x) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| int | Arageli::cmp (const monom< F1, I1 > &m1, const monom< F2, I2 > &m2) |
| template<typename F1, typename I1, typename F2> | |
| int | Arageli::cmp (const monom< F1, I1 > &m1, const F2 &b) |
| template<typename F1, typename F2, typename I2> | |
| int | Arageli::cmp (const F1 &a, const monom< F2, I2 > &m2) |
| template<typename F, typename I, typename Factory_coef> | |
| int | Arageli::sign (const monom< F, I > &x) |
| Determines the sign of monom, i.e. sign of the its coefficient. | |
| template<typename Ch, typename ChT, typename F, typename I> | |
| std::basic_ostream< Ch, ChT > & | Arageli::output_list (std::basic_ostream< Ch, ChT > &out, const monom< F, I > &x, const char *first_bracket=monom_output_list_first_bracket_default, const char *second_bracket=monom_output_list_second_bracket_default, const char *separator=monom_output_list_separator_default) |
| Simple outputting of monom. | |
| template<typename Ch, typename ChT, typename F, typename I> | |
| std::basic_ostream< Ch, ChT > & | Arageli::output_var (std::basic_ostream< Ch, ChT > &out, const monom< F, I > &x, bool first_a=true, const char *var=monom_output_var_var_default, const char *mul=monom_output_var_mul_default, const char *pow=monom_output_var_pow_default) |
| Выводит моном в привычном виде, с указанием формальной переменной. | |
| template<typename Ch, typename ChT, typename F, typename I> | |
| std::basic_istream< Ch, ChT > & | Arageli::input_list (std::basic_istream< Ch, ChT > &in, monom< F, I > &x, const char *first_bracket=monom_input_list_first_bracket_default, const char *second_bracket=monom_input_list_second_bracket_default, const char *separator=monom_input_list_separator_default) |
| Simple intputting for monom. | |
| template<typename Ch, typename ChT, typename F, typename I, typename Factory_coef> | |
| std::basic_istream< Ch, ChT > & | Arageli::input_var (std::basic_istream< Ch, ChT > &in, monom< F, I > &x, bool first_a, const Factory_coef &fctr, const char *var=monom_input_var_var_default, const char *mul=monom_input_var_mul_default, const char *pow=monom_input_var_pow_default) |
| Inputting with variable symbol for monom. | |
| template<typename Ch, typename ChT, typename F, typename I> | |
| std::basic_istream< Ch, ChT > & | Arageli::input_var (std::basic_istream< Ch, ChT > &in, monom< F, I > &x, bool first_a=true, const char *var=monom_input_var_var_default, const char *mul=monom_input_var_mul_default, const char *pow=monom_input_var_pow_default) |
| Inputting with variable symbol for monom. | |
| template<typename Ch, typename ChT, typename F, typename I> | |
| std::basic_ostream< Ch, ChT > & | Arageli::output_aligned (std::basic_ostream< Ch, ChT > &out, const monom< F, I > &x, bool first_a=true, const char *var=monom_output_var_var_default, const char *mul=monom_output_var_mul_default, const char *pow=monom_output_var_pow_default) |
| Oputputs monom in aligned form. (Restricted implementation.). | |
| template<typename F, typename I, typename Ch, typename ChT> | |
| std::basic_ostream< Ch, ChT > & | Arageli::operator<< (std::basic_ostream< Ch, ChT > &out, const monom< F, I > &x) |
| Стандартный способ вывода монома: совпадает с output_var. | |
| template<typename F, typename I, typename Ch, typename ChT> | |
| std::basic_istream< Ch, ChT > & | Arageli::operator>> (std::basic_istream< Ch, ChT > &in, monom< F, I > &x) |
| Стандартный способ ввода монома: совпадает с input_var. | |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| int | Arageli::cmp (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b) |
| Lexicographical comparision of two polynomials. | |
| template<typename F, typename I, bool REFCNT> | |
| bool | Arageli::is_primitive (const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| bool | Arageli::is_unit (const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| bool | Arageli::is_opposite_unit (const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| bool | Arageli::is_null (const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > | Arageli::opposite (const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > & | Arageli::opposite (const sparse_polynom< F, I, REFCNT > &x, sparse_polynom< F, I, REFCNT > *y) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > & | Arageli::opposite (sparse_polynom< F, I, REFCNT > *x) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > | Arageli::inverse (const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > & | Arageli::inverse (const sparse_polynom< F, I, REFCNT > &x, sparse_polynom< F, I, REFCNT > *y) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > & | Arageli::inverse (sparse_polynom< F, I, REFCNT > *x) |
| template<typename F, typename I, bool REFCNT> | |
| std::ostream & | Arageli::output_polynom_first (std::ostream &out, const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| std::ostream & | Arageli::output_polynom_internal (std::ostream &out, const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| std::ostream & | Arageli::output_pow (std::ostream &out, const sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| std::istream & | Arageli::input_polynom_first (std::istream &in, sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| std::istream & | Arageli::input_polynom_internal (std::istream &in, sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| std::istream & | Arageli::input_pow (std::istream &in, sparse_polynom< F, I, REFCNT > &x) |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > | Arageli::euclid (sparse_polynom< F, I, REFCNT > a, sparse_polynom< F, I, REFCNT > b) |
| Specialization of euclid for sparse_polynom. | |
| template<typename F, typename I, bool REFCNT> | |
| bool | Arageli::is_coprime (const sparse_polynom< F, I, REFCNT > &a, const sparse_polynom< F, I, REFCNT > &b) |
| Specialization of is_coprime for sparse_polynom. | |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2, typename Q, typename R> | |
| void | Arageli::prdivide (const sparse_polynom< F1, I1, REFCNT1 > &a, const sparse_polynom< F2, I2, REFCNT2 > &b, Q &q, R &r) |
| template<typename F1, typename I1, bool REFCNT1, typename I2> | |
| sparse_polynom< F1, I1, REFCNT1 > | Arageli::pow (const sparse_polynom< F1, I1, REFCNT1 > &a, const I2 &n) |
| template<typename F, typename I> | |
| monom< F, I > | Arageli::abs (const monom< F, I > &x) |
| Absolute value for monom. | |
| template<typename F, typename I, bool REFCNT> | |
| sparse_polynom< F, I, REFCNT > | Arageli::abs (const sparse_polynom< F, I, REFCNT > &x) |
| Absolute value for polynomial. | |
| template<typename F1, typename I1, bool REFCNT1, typename I2> | |
| Arageli::sparse_polynom< F1, I1, REFCNT1 > | std::pow (const Arageli::sparse_polynom< F1, I1, REFCNT1 > &a, const I2 &n) |
| template<typename F1, typename I1, typename F2, typename I2> | |
| void | std::swap (Arageli::monom< F1, I1 > &a, Arageli::monom< F2, I2 > &b) |
| template<typename F1, typename I1, bool REFCNT1, typename F2, typename I2, bool REFCNT2> | |
| void | std::swap (Arageli::sparse_polynom< F1, I1, REFCNT1 > &a, Arageli::sparse_polynom< F2, I2, REFCNT2 > &b) |
| template<typename F, typename I> | |
| void | std::swap (Arageli::monom< F, I > &a, Arageli::monom< F, I > &b) |
| template<typename F, typename I, bool REFCNT> | |
| void | std::swap (Arageli::sparse_polynom< F, I, REFCNT > &a, Arageli::sparse_polynom< F, I, REFCNT > &b) |
| template<typename F, typename I> | |
| Arageli::monom< F, I > | std::abs (const Arageli::monom< F, I > &x) |
| Absolute value for monom. | |
| template<typename F, typename I, bool REFCNT> | |
| Arageli::sparse_polynom< F, I, REFCNT > | std::abs (const Arageli::sparse_polynom< F, I, REFCNT > &x) |
| Absolute value for polynomial. | |
Variables | |
| const char * | Arageli::monom_input_list_first_bracket_default |
| const char * | Arageli::monom_output_list_first_bracket_default |
| const char * | Arageli::monom_input_list_second_bracket_default |
| const char * | Arageli::monom_output_list_second_bracket_default |
| const char * | Arageli::monom_input_list_separator_default |
| const char * | Arageli::monom_output_list_separator_default |
| const char * | Arageli::monom_input_var_mul_default |
| const char * | Arageli::monom_output_var_mul_default |
| const char * | Arageli::monom_input_var_var_default |
| const char * | Arageli::monom_output_var_var_default |
| const char * | Arageli::monom_input_var_pow_default |
| const char * | Arageli::monom_output_var_pow_default |
Definition in file sparse_polynom.hpp.
| #define _ARAGELI_MONOM_BINOPER | ( | AOPER, | |||
| BOPER | ) |
Definition at line 766 of file sparse_polynom.hpp.
| #define _ARAGELI_MONOM_CMP | ( | OPER | ) |
Value:
template <typename F1, typename I1, typename F2, typename I2> \ inline bool operator OPER \ (const monom<F1, I1>& a, const monom<F2, I2>& b) \ { return cmp(a, b) OPER 0; } \ \ template <typename F1, typename I1, typename F2> \ inline bool operator OPER \ ( \ const monom<F1, I1>& a, \ const F2& b \ ) \ { return cmp(a, b) OPER 0; } \ \ template <typename F1, typename F2, typename I2> \ inline bool operator OPER \ ( \ const F1& a, \ const monom<F2, I2>& b \ ) \ { return cmp(a, b) OPER 0; }
Definition at line 550 of file sparse_polynom.hpp.
| #define _ARAGELI_POLYNOM_BINOPER | ( | AOPER, | |||
| BOPER | ) |
Definition at line 1884 of file sparse_polynom.hpp.
| #define _ARAGELI_SPARSE_POLYNOMIAL_CMP | ( | OPER | ) |
Definition at line 2075 of file sparse_polynom.hpp.
| #define ARAGELI_INCLUDE_CPP_WITH_EXPORT_TEMPLATE_SPARSE_POLYNOM |
Definition at line 2615 of file sparse_polynom.hpp.
1.4.7