23 #ifndef COMPARISON_H_INCLUDED 24 #define COMPARISON_H_INCLUDED 65 std::string
const &
getName()
const override;
67 bool isArbitrary()
const override;
73 void print(
int mode=0,
74 std::ostream& out=std::cout,
75 bool lib =
false)
const override;
77 std::string
printLaTeX(
int mode=0)
const override;
80 csl::eval::mode user_mode = csl::eval::base
83 unique_Expr copy_unique()
const override;
85 long long int getNum()
const override;
89 bool operator<(
const Abstract* expr)
const override;
139 static bool dummyComparison(
Expr const& expr,
Expr const& dummyExpr);
141 static bool dummyVecIntComparison(
Expr_info A,
147 return freeIndexComparisonActive;
150 static void setFreeIndexComparisonActive(
bool t_activ);
155 static std::string dummyName();
172 static bool compare(
const Index& A,
const Index& B);
181 return dummyComparisonActive;
184 static bool getDummyVecIntComparisonActive() {
185 return dummyVecIntComparisonActive;
190 static void setDummyComparisonActive(
bool state);
192 static void setDummyVecIntComparisonActive(
bool state);
221 static bool dummyVecIntComparisonActive;
227 static bool dummyComparisonActive;
232 static std::map<int,Expr> arbitrary;
240 static std::map<int,Expr> correspondance;
std::string printLaTeX(int mode=0) const override
Creates a LaTeX output for the Abstract.
Definition: comparison.cpp:78
~Arbitrary()
Destructor.
Definition: comparison.h:63
static bool freeIndexComparisonActive
Tells if the index comparison is active or not. If true, two different indices (even free indices) c...
Definition: comparison.h:213
Namespace for csl library.
Definition: abreviation.h:34
Index object that is used for indicial objects.
Definition: index.h:75
static bool getDummyComparisonActive()
Definition: comparison.h:180
static std::map< Index, Index > indexCorrespondance
Correspondance between indices during the comparison. Allows to keep track of all index comparisons w...
Definition: comparison.h:219
Type
Enum of the different types of Abstract (i.e. list of all possible specializations).
Definition: enum.h:47
std::optional< Expr > evaluate(csl::eval::mode user_mode=csl::eval::base) const override
Evaluates the Abstract.
Definition: comparison.cpp:83
std::string const & getName() const override
Returns the Abstract's name.
Definition: comparison.cpp:53
PrimaryType
Stores enumerations of types for Abstract objects.
Definition: enum.h:31
Root class of the inheritance tree of abstracts.
Definition: abstract.h:76
Arbitrary object that can enter mathematical expressions.
Definition: comparison.h:48
void print(int mode=0, std::ostream &out=std::cout, bool lib=false) const override
Displays the abstract in standard output.
Definition: comparison.cpp:68
static bool getFreeIndexComparisonActive()
Definition: comparison.h:146
Base classes for all exprs in the program.
Abstract class from which derive literal building blocks: Constant, Variable, Imaginary and IntFactor...
Definition: literal.h:35
bool operator==(Expr_info expr) const override
Compares the Abstract with another.
Definition: comparison.cpp:97
long long int getNum() const override
Definition: comparison.cpp:63
csl::PrimaryType getPrimaryType() const override
Gives the primary type of Abstract.
Definition: comparison.cpp:43
csl::Type getType() const override
Gives the type of Abstract.
Definition: comparison.cpp:48
Bunch of functions that allow to do comparisons with Arbitrary expressions or expressions with dummy ...
Definition: comparison.h:115
Expression type/.
Definition: abstract.h:1573