dict.h File Reference
#include <symengine/mp_class.h>
#include <algorithm>
#include <cstdint>
#include <map>
#include <vector>
#include <unordered_map>
#include <set>
#include <unordered_set>
+ Include dependency graph for dict.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  SymEngine::vec_hash< T >
 

Namespaces

 SymEngine
 Main namespace for SymEngine package.
 

Typedefs

typedef uint64_t SymEngine::hash_t
 
typedef std::unordered_map< RCP< const Basic >, RCP< const Number >, RCPBasicHash, RCPBasicKeyEq > SymEngine::umap_basic_num
 
typedef std::unordered_map< short, RCP< const Basic > > SymEngine::umap_short_basic
 
typedef std::unordered_map< int, RCP< const Basic > > SymEngine::umap_int_basic
 
typedef std::unordered_map< RCP< const Basic >, RCP< const Basic >, RCPBasicHash, RCPBasicKeyEq > SymEngine::umap_basic_basic
 
typedef std::unordered_set< RCP< const Basic >, RCPBasicHash, RCPBasicKeyEq > SymEngine::uset_basic
 
typedef std::vector< int > SymEngine::vec_int
 
typedef std::vector< RCP< const Basic > > SymEngine::vec_basic
 
typedef std::vector< RCP< const Integer > > SymEngine::vec_integer
 
typedef std::vector< unsigned int > SymEngine::vec_uint
 
typedef std::vector< integer_class > SymEngine::vec_integer_class
 
typedef std::vector< RCP< const Symbol > > SymEngine::vec_sym
 
typedef std::set< RCP< const Basic >, RCPBasicKeyLess > SymEngine::set_basic
 
typedef std::multiset< RCP< const Basic >, RCPBasicKeyLess > SymEngine::multiset_basic
 
typedef std::map< vec_uint, unsigned long long int > SymEngine::map_vec_uint
 
typedef std::map< vec_uint, integer_class > SymEngine::map_vec_mpz
 
typedef std::map< RCP< const Basic >, RCP< const Number >, RCPBasicKeyLess > SymEngine::map_basic_num
 
typedef std::map< RCP< const Basic >, RCP< const Basic >, RCPBasicKeyLess > SymEngine::map_basic_basic
 
typedef std::map< RCP< const Integer >, unsigned, RCPIntegerKeyLess > SymEngine::map_integer_uint
 
typedef std::map< unsigned, integer_class > SymEngine::map_uint_mpz
 
typedef std::map< unsigned, rational_class > SymEngine::map_uint_mpq
 
typedef std::map< int, Expression > SymEngine::map_int_Expr
 
typedef std::unordered_map< RCP< const Basic >, unsigned int, RCPBasicHash, RCPBasicKeyEq > SymEngine::umap_basic_uint
 
typedef std::vector< std::pair< RCP< const Basic >, RCP< const Basic > > > SymEngine::vec_pair
 
typedef std::unordered_map< vec_uint, integer_class, vec_hash< vec_uint > > SymEngine::umap_uvec_mpz
 
typedef std::unordered_map< vec_int, integer_class, vec_hash< vec_int > > SymEngine::umap_vec_mpz
 
typedef std::unordered_map< vec_int, Expression, vec_hash< vec_int > > SymEngine::umap_vec_expr
 
template<bool B, class T = void>
using SymEngine::enable_if_t = typename std::enable_if< B, T >::type
 

Functions

bool SymEngine::eq (const Basic &a, const Basic &b)
 Checks equality for a and b More...
 
template<typename T1 , typename T2 , typename T3 >
void SymEngine::insert (T1 &m, const T2 &first, const T3 &second)
 
template<class M , typename C = std::less<typename M::key_type>>
std::vector< typename M::key_type > SymEngine::sorted_keys (const M &d)
 
template<typename T , typename U >
bool SymEngine::unified_eq (const std::pair< T, U > &a, const std::pair< T, U > &b)
 
template<typename T , typename U >
bool SymEngine::unified_eq (const std::set< T, U > &a, const std::set< T, U > &b)
 
template<typename T , typename U >
bool SymEngine::unified_eq (const std::multiset< T, U > &a, const std::multiset< T, U > &b)
 
template<typename K , typename V , typename C >
bool SymEngine::unified_eq (const std::map< K, V, C > &a, const std::map< K, V, C > &b)
 
template<typename K , typename V , typename H , typename E >
bool SymEngine::unified_eq (const std::unordered_map< K, V, H, E > &a, const std::unordered_map< K, V, H, E > &b)
 
template<typename T , typename U , typename = enable_if_t<std::is_base_of<Basic, T>::value and std::is_base_of<Basic, U>::value>>
bool SymEngine::unified_eq (const RCP< const T > &a, const RCP< const U > &b)
 
template<typename T , typename = enable_if_t<std::is_arithmetic<T>::value or std::is_same<T, integer_class>::value>>
bool SymEngine::unified_eq (const T &a, const T &b)
 
template<class T >
bool SymEngine::unordered_eq (const T &a, const T &b)
 
template<class T >
bool SymEngine::ordered_eq (const T &A, const T &B)
 
template<typename T >
bool SymEngine::unified_eq (const std::vector< T > &a, const std::vector< T > &b)
 
template<typename T , typename = enable_if_t<std::is_arithmetic<T>::value or std::is_same<T, integer_class>::value or std::is_same<T, rational_class>::value>>
int SymEngine::unified_compare (const T &a, const T &b)
 
template<typename T , typename U , typename = enable_if_t<std::is_base_of<Basic, T>::value and std::is_base_of<Basic, U>::value>>
int SymEngine::unified_compare (const RCP< const T > &a, const RCP< const U > &b)
 
template<class T >
int SymEngine::ordered_compare (const T &A, const T &B)
 
template<typename T >
int SymEngine::unified_compare (const std::vector< T > &a, const std::vector< T > &b)
 
template<typename T , typename U >
int SymEngine::unified_compare (const std::set< T, U > &a, const std::set< T, U > &b)
 
template<typename T , typename U >
int SymEngine::unified_compare (const std::multiset< T, U > &a, const std::multiset< T, U > &b)
 
template<typename T , typename U >
int SymEngine::unified_compare (const std::pair< T, U > &a, const std::pair< T, U > &b)
 
template<typename K , typename V , typename C >
int SymEngine::unified_compare (const std::map< K, V, C > &a, const std::map< K, V, C > &b)
 
template<typename K , typename V , typename H , typename E >
int SymEngine::unified_compare (const std::unordered_map< K, V, H, E > &a, const std::unordered_map< K, V, H, E > &b)
 
template<class M , typename C = std::less<typename M::key_type>>
int SymEngine::unordered_compare (const M &a, const M &b)
 
bool SymEngine::vec_basic_eq_perm (const vec_basic &a, const vec_basic &b)
 misc functions
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::umap_basic_num &d)
 print functions
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::map_basic_num &d)
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::map_basic_basic &d)
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::umap_basic_basic &d)
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::vec_basic &d)
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::set_basic &d)
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::map_int_Expr &d)
 
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::vec_pair &d)
 

Detailed Description

Dictionary implementation

Definition in file dict.h.