No Matches
basic.h File Reference

The base class for SymEngine. More...

#include <sstream>
#include <typeinfo>
#include <map>
#include <vector>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <cassert>
#include <cmath>
#include <complex>
#include <type_traits>
#include <functional>
#include <algorithm>
#include <symengine/symengine_config.h>
#include <symengine/symengine_exception.h>
#include <symengine/dict.h>
#include "symengine/type_codes.inc"
#include "basic-methods.inc"
#include "basic-inl.h"
+ Include dependency graph for basic.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  SymEngine::Basic
 The lowest unit of symbolic representation. More...
struct  SymEngine::RCPBasicHash
 Our hash: More...
struct  SymEngine::RCPBasicKeyEq
 Our comparison (==) More...
struct  SymEngine::RCPBasicKeyLess
 Our less operator (<): More...


namespace  SymEngine
 Main namespace for SymEngine package.
namespace  std
 STL namespace.


#define SYMENGINE_ENUM(type, Class)   type,
 Inline members and functions. More...
#define SYMENGINE_ASSIGN_TYPEID()   this->type_code_ = type_code_id;


enum  SymEngine::TypeID { SymEngine::TypeID_Count }
enum  tribool { indeterminate = -1 , trifalse = 0 , tritrue = 1 }


std::string SymEngine::type_code_name (TypeID id)
bool SymEngine::is_true (tribool x)
bool SymEngine::is_false (tribool x)
bool SymEngine::is_indeterminate (tribool x)
tribool SymEngine::tribool_from_bool (bool x)
tribool SymEngine::and_tribool (tribool a, tribool b)
tribool SymEngine::not_tribool (tribool a)
tribool SymEngine::andwk_tribool (tribool a, tribool b)
bool SymEngine::eq (const Basic &a, const Basic &b)
 Checks equality for a and b More...
bool SymEngine::neq (const Basic &a, const Basic &b)
 Checks inequality for a and b More...
template<class T >
bool SymEngine::is_a (const Basic &b)
 Templatised version to check is_a type. More...
bool SymEngine::is_a_Atom (const Basic &b)
 Returns true if b is an atom. i.e. b.get_args returns an empty vector. More...
template<class T >
bool SymEngine::is_a_sub (const Basic &b)
bool SymEngine::is_same_type (const Basic &a, const Basic &b)
 Returns true if a and b are exactly the same type T. More...
RCP< const Basic > SymEngine::expand (const RCP< const Basic > &self, bool deep=true)
 Expands self More...
void SymEngine::as_numer_denom (const RCP< const Basic > &x, const Ptr< RCP< const Basic > > &numer, const Ptr< RCP< const Basic > > &denom)
void SymEngine::as_real_imag (const RCP< const Basic > &x, const Ptr< RCP< const Basic > > &real, const Ptr< RCP< const Basic > > &imag)
RCP< const Basic > SymEngine::rewrite_as_exp (const RCP< const Basic > &x)
RCP< const Basic > SymEngine::rewrite_as_sin (const RCP< const Basic > &x)
RCP< const Basic > SymEngine::rewrite_as_cos (const RCP< const Basic > &x)
void SymEngine::cse (vec_pair &replacements, vec_basic &reduced_exprs, const vec_basic &exprs)
std::ostreamSymEngine::operator<< (std::ostream &out, const SymEngine::Basic &p)
 << Operator More...
template<class T >
void SymEngine::hash_combine (hash_t &seed, const T &v)
const char * SymEngine::get_version ()

Detailed Description

The base class for SymEngine.

SymEngine Developers

Created on: 2012-07-11

Definition in file basic.h.

Macro Definition Documentation


const static TypeID type_code_id = SYMENGINE_ID; \

Inline members and functions.

Definition at line 349 of file basic.h.


#define SYMENGINE_ASSIGN_TYPEID ( )    this->type_code_ = type_code_id;

Definition at line 358 of file basic.h.


#define SYMENGINE_ENUM (   type,
)    type,

Definition at line 45 of file basic.h.



Definition at line 44 of file basic.h.