23 #ifndef COMPLEX_H_INCLUDED 24 #define COMPLEX_H_INCLUDED 43 bool operatorAppliesOn(
Expr_info arg)
const override;
49 void print(
int mode = 0,
50 std::ostream& out = std::cout,
51 bool lib =
false)
const override;
53 std::string
printLaTeX(
int mode = 0)
const override;
58 csl::eval::mode user_mode = csl::eval::base
61 unique_Expr copy_unique()
const override;
63 Expr deepCopy()
const override;
65 Expr refresh()
const override;
67 Expr deepRefresh()
const override;
69 bool isReal()
const override;
71 bool isPurelyImaginary()
const override;
90 bool operatorAppliesOn(
Expr_info arg)
const override;
96 void print(
int mode = 0,
97 std::ostream& out = std::cout,
98 bool lib =
false)
const override;
100 std::string
printLaTeX(
int mode = 0)
const override;
105 csl::eval::mode user_mode = csl::eval::base
108 unique_Expr copy_unique()
const override;
110 Expr deepCopy()
const override;
112 Expr refresh()
const override;
114 Expr deepRefresh()
const override;
116 bool isReal()
const override;
118 bool isPurelyImaginary()
const override;
bool operator==(Expr_info other) const override
Compares the Abstract with another.
Definition: cslcomplex.cpp:162
Namespace for csl library.
Definition: abreviation.h:34
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: cslcomplex.cpp:99
Expr getOperand() const override
Returns the operand of an Operator.
Definition: cslcomplex.cpp:52
Generic template to handle operator expression, i.e. expression that applies on expressions on the ri...
Definition: librarydependency.h:33
Definition: cslcomplex.h:78
Root class of the inheritance tree of abstracts.
Definition: abstract.h:76
Base classes for scalar functions.
Definition: cslcomplex.h:31
csl::Type getType() const override
Gives the type of Abstract.
Definition: cslcomplex.cpp:42
void print(int mode=0, std::ostream &out=std::cout, bool lib=false) const override
Displays the abstract in standard output.
Definition: cslcomplex.cpp:62
std::string printLaTeX(int mode=0) const override
Creates a LaTeX output for the Abstract.
Definition: cslcomplex.cpp:82
Linear operator O(a*X+b*Y) = a*O(X) + b*O(Y)
Definition: operator.h:38
std::optional< Expr > getComplexConjugate() const override
Calculates and returns the complex conjugate of the expression.
Definition: cslcomplex.cpp:157
Expression type/.
Definition: abstract.h:1573
void setOperand(const Expr &t_operand) override
Sets the operand of an operator.
Definition: cslcomplex.cpp:57