|
| | IntFactorial () |
| | Default Constructor. More...
|
| |
| | IntFactorial (int t_value) |
| | Initializes value to t_value. More...
|
| |
| long double | getValue () const override |
| | Returns the value in the factorial. More...
|
| |
| csl::PrimaryType | getPrimaryType () const override |
| | Gives the primary type of a IntFraction. More...
|
| |
| csl::Type | getType () const override |
| | Gives the type of a IntFraction. More...
|
| |
| void | setValue (long double t_value) override |
| | Sets the value from which we want the factorial. More...
|
| |
| void | print (int mode=0, std::ostream &out=std::cout, bool lib=false) const override |
| | Displays the abstract in standard output. More...
|
| |
|
void | printCode (int mode=0, std::ostream &out=std::cout) const override |
| |
| std::string | printLaTeX (int mode=0) const override |
| | Creates a LaTeX output for the Abstract. More...
|
| |
| long double | evaluateScalar () const override |
| | Returns the evaluation of the factorial. More...
|
| |
| std::optional< Expr > | evaluate (csl::eval::mode user_mode=csl::eval::base) const override |
| | Evaluates the Abstract. More...
|
| |
|
unique_Expr | copy_unique () const override |
| |
|
Expr | refresh () const override |
| |
| std::optional< Expr > | derive (Expr_info expr) const override |
| | Derives the IntFactorial wrt expr. More...
|
| |
| void | operator= (int t_value) |
| | Sets value to t_value. More...
|
| |
| bool | operator== (Expr_info expr) const override |
| |
|
bool | operator< (const Abstract *expr) const override |
| |
|
size_t | memoryOverhead () const override |
| |
|
std::vector< Parent > | getSubSymbols () const override |
| |
| const std::vector< Equation * > & | getProperties () const override |
| |
| void | addProperty (Equation *property) override |
| | Adds a property to the object. More...
|
| |
| void | removeProperty (Equation *property) override |
| | Removes a property to the object. More...
|
| |
|
bool | isReal () const override |
| |
|
bool | isPurelyImaginary () const override |
| |
|
bool | isComplexConjugate () const override |
| |
| std::optional< Expr > | getRealPart () const override |
| | Evaluates the real part of the Abstract and returns it. More...
|
| |
| Expr | getImaginaryPart () const override |
| | Evaluates the imaginary part of the Abstract and returns it. More...
|
| |
| std::optional< Expr > | getComplexConjugate () const override |
| | Calculates and returns the complex conjugate of the expression. More...
|
| |
|
void | setConjugated (bool t_conjugated) override |
| |
|
void | printProp (std::ostream &fout=std::cout) const override |
| |
|
csl::ComplexProperty | getComplexProperty () const override |
| |
|
void | setComplexProperty (csl::ComplexProperty prop) override |
| |
| bool | isBuildingBlock () const override |
| | Tells if the expression is a Building Block or not. More...
|
| |
| virtual bool | commutesWith (Expr_info expr, int sign=-1) const override |
| | Tells if the object commutes with expr. More...
|
| |
| std::optional< Expr > | expand (bool full=false, bool inplace=false) const override |
| | Develops the Abstract. More...
|
| |
| std::optional< Expr > | factor (bool full=false) const override |
| | Factors the Abstract. More...
|
| |
| std::optional< Expr > | factor (Expr_info expr, bool full=false) const override |
| | Factors the Abstract wrt a particular Abstract. More...
|
| |
| std::optional< Expr > | getTerm () const override |
| | This function returns the same expression as *this but amputated of its numerical factor. Example: (4*cos(x) -> cos(x)). More...
|
| |
| std::optional< Expr > | getComplexModulus () const override |
| | Evaluates the modulus in the complex plane of the Abstract and returns it. More...
|
| |
| std::optional< Expr > | getPolynomialTerm (Expr_info expr, int order) const override |
| | Calculates and returns the polynomial term corresponding to *this with the variable t_variable at order order. In particular, this function assumes that the checks have already been made with the function isPolynomial(). More...
|
| |
| std::optional< Expr > | findSubExpression (Expr_info subExpression, const Expr &newExpression) const override |
| | Searches a sub-expression and replaces it. More...
|
| |
| | Abstract () |
| | Default Constructor. More...
|
| |
|
virtual | ~Abstract () |
| | Destructor.
|
| |
|
Expr | self () |
| |
| void | printExplicit (int mode=0) const |
| | Displays explicitely the expression, with types of each component. This function is only used for debug. More...
|
| |
|
virtual LibDependency | getLibDependency () const |
| |
| virtual std::string const & | getName () const |
| | Returns the Abstract's name. More...
|
| |
|
virtual std::string const & | getLatexName () const |
| |
| virtual bool | getCommutable () const |
| | Allows to know if the object commutes with all the others. More...
|
| |
|
virtual bool | getElementary () const |
| |
|
virtual bool | getAllDependencies () const |
| |
| virtual int | getDim () const |
| | Gives the dimension of the object. More...
|
| |
|
virtual int | getOrderOf (Expr_info expr) const |
| |
|
virtual bool | isArbitrary () const |
| |
| virtual bool | isIndexed () const |
| |
|
virtual bool | isHermitianConjugate () const |
| |
| virtual bool | isInteger () const |
| | Tells if the expression is an integer. Either an Integer object directly, or a Float that has an integer value. More...
|
| |
| virtual bool | getValued () const |
| | Tells if the expression is valued, i.e. is a function of numbers and valued literals (a Variable or Constant is not valued by default). More...
|
| |
|
virtual long double | getDeltaPlus () const |
| |
|
virtual long double | getDeltaMinus () const |
| |
| virtual long long int | getNum () const |
| |
| virtual long long int | getDenom () const |
| |
| virtual int | getNArgs (int axis=0) const |
| | Returns the number of arguments of the expression. If the expression is a building block (AbstractBuildingBlock), this function returns 0. More...
|
| |
|
virtual size_t | size () const |
| |
|
virtual bool | empty () const |
| |
| virtual csl::vector_expr::iterator | begin () |
| |
| virtual csl::vector_expr::iterator | end () |
| |
| virtual csl::vector_expr::const_iterator | begin () const |
| |
| virtual csl::vector_expr::const_iterator | end () const |
| |
| virtual Expr const & | getArgument (int iArg=0) const |
| |
|
virtual Expr & | getArgument (int iArg=0) |
| |
| virtual Expr const & | getArgument (const std::vector< int > &indices) const |
| | Allows to get specific arguments of expressions in multiple dimensions, by giving the indices in each dimension. More...
|
| |
|
virtual Expr & | getArgument (const std::vector< int > &indices) |
| |
| virtual const csl::vector_expr & | getVectorArgument () const |
| | Allows to get the entire std::vector of arguments of the expression. More...
|
| |
| virtual Expr | getVariable () const |
| | Accessor to the variable that defines certain types of expressions. More...
|
| |
| virtual int | getOrder () const |
| | Accessor to the order (integer) that defines certain types of expressions. More...
|
| |
| virtual int | getSign () const |
| |
| virtual bool | isAnOperator () const |
| | Tells if the expression is an operator (like a derivetive operator). More...
|
| |
| virtual bool | isEmpty () const |
| | Tells for a Derivative or an Integral if the argument is empty i.e. if the object must apply on the next argument encountered on the right. More...
|
| |
|
virtual bool | operatorAppliesOn (Expr_info expr) const |
| |
| virtual Expr | getOperand () const |
| | Returns the operand of an Operator. More...
|
| |
| virtual std::vector< int > | getShape () const |
| | Accessor to the shape of the tensor in the form of a std::vector of integers. More...
|
| |
|
virtual Expr | getInfBoundary () const |
| |
|
virtual Expr | getSupBoundary () const |
| |
|
virtual void | setSupBoundary (Expr const &t_inf) |
| |
|
virtual void | setInfBoundary (Expr const &t_inf) |
| |
| virtual int | getNIndices () const |
| |
| virtual Index | getIndex (int i=0) const |
| |
|
virtual void | resetIndexStructure () |
| |
| virtual IndexStructure | getIndexStructure () const |
| |
|
IndexStructure | getIndexStructure (csl::Space const *space) const |
| |
|
virtual const IndexStructure & | getIndexStructureView () const |
| |
|
virtual IndexStructure & | getIndexStructureView () |
| |
| virtual IndexStructure | getFreeIndexStructure () const |
| |
| virtual Parent | getParent () const |
| | For indicial expressions this function returns a pointer to the parent object of type TensorParent (not an expression). More...
|
| |
|
virtual Parent_info | getParent_info () const |
| |
|
virtual Tensor | getPoint () const |
| |
| virtual int | getNContractedPairs () const |
| | Returns the number of contracted pairs of indices in an Indicial expression. More...
|
| |
| virtual csl::vector_expr | getPermutations (bool optimize=true) const |
| | Returns a std::vector of all possible permutations of an Indicial expression. The possible permutations are determined from the posible symmetries and anti-symmetries of the object. More...
|
| |
| virtual std::set< std::pair< int, int > > | getContractedPair () const |
| |
|
Expr | copy () const |
| |
|
virtual Expr | deepCopy () const |
| |
|
virtual Expr | deepRefresh () const |
| |
| virtual void | setName (const std::string &t_name) |
| | Change the name of the abstract. More...
|
| |
| virtual void | setCommutable (bool t_commutable) |
| | Allows the abstract to commute or not. More...
|
| |
|
virtual void | setValue (Expr const &t_value) |
| |
|
virtual void | setElementary (bool t_elementary) |
| |
|
virtual void | setAllDependencies (bool t_allDependencies) |
| |
|
virtual void | addDependency (Expr const &expr) |
| |
|
virtual void | removeDependency (Expr const &expr) |
| |
| virtual void | setArgument (const Expr &expr, int iArg=0) |
| | Sets the argument at position iArg (default=0). More...
|
| |
| virtual void | setArgument (const Expr &expr, const std::vector< int > &indices) |
| | Sets the argument at position {i,j,...} for multi-dimensions expressions. More...
|
| |
|
virtual void | setEmpty (bool t_empty) |
| |
| virtual void | setOperand (const Expr &operand) |
| | Sets the operand of an operator. More...
|
| |
| virtual void | setOperandPrivate (const Expr &operand, bool leaveEmpty) |
| | Sets the operand of an operator. More...
|
| |
| virtual void | setVectorArgument (const csl::vector_expr &t_argument) |
| | Replaced the entire std::vector of argument. More...
|
| |
|
virtual void | setVariable (Expr const &t_variable) |
| |
| virtual void | insert (const Expr &expr, bool side=1) |
| | Inserts an expression in a sum or a product. More...
|
| |
|
virtual void | setParent (const Parent &t_parent) |
| |
| virtual std::optional< Expr > | replaceIndex (const Index &indexToReplace, const Index &newIndex, bool refresh=true) const |
| | For indicial expressions, this function searches indexToContract and replaces it with newIndex. More...
|
| |
|
virtual std::optional< Expr > | replaceIndices (std::vector< Index > const &indexToReplace, std::vector< Index > const &newIndex, bool refresh=true, bool flipped=false) const |
| |
|
virtual void | replaceIndexInPlace (Index const &oldIndex, Index const &newIndex) |
| |
|
std::optional< Expr > | contractIndex (const Index &index) const |
| |
|
csl::vector_expr | breakSpace (const Space *brokenSpace, const std::vector< const Space *> &newSpace) const |
| |
|
virtual csl::vector_expr | breakSpace (const Space *brokenSpace, const std::vector< const Space *> &newSpace, const std::vector< std::string > &indexNames) const |
| |
| virtual void | setIndexStructure (const IndexStructure &t_index) |
| | Replaces the index structure of the object, that must be an Indicial expression. More...
|
| |
|
virtual void | setPoint (const Tensor &t_point) |
| |
|
virtual void | setFullySymmetric () |
| | Sets an Indicial object fully symmetric. Allows to set quickly a frequent property of tensors. This function then erases all properties of symmetry / antisymmetry and sets fullySymmetric to True.
|
| |
|
virtual void | setFullyAntiSymmetric () |
| | Sets an Indicial object fully anti-symmetric. Allows to set quickly a frequent property of tensors. This function then erases all properties * of symmetry / antisymmetry and sets fullyAntiSymmetric to True.
|
| |
| virtual void | addSymmetry (int i1, int i2) |
| | Add a symmetry between the i1^{th} and the i2^{th} indices. If those indices are anti-symmetric, an error is thrown. More...
|
| |
| virtual void | addAntiSymmetry (int i1, int i2) |
| | Add an anti-symmetry between the i1^{th} and the i2^{th} indices. If those indices are symmetric, an error is thrown. More...
|
| |
| virtual int | permut (int i1, int i2) |
| | Tries to permut indices at place i1 and i2. If those two indices have a symmetry property, indices are swaped and the symmetry is returned. Else the fnuction does nothing and returns 0. More...
|
| |
| virtual Expr | getNumericalFactor () const |
| | Returns the numerical factor of the expression, i.e. returns C if the expression if of the form C*x (x having a numerical factor equal to 1), and return 1 else. More...
|
| |
| virtual int | getNFactor () const |
| |
| virtual csl::vector_expr | getFactors () const |
| | Allows to get a std::vector of all terms than could factor the expression. More...
|
| |
| virtual void | getExponents (std::vector< Expr > const &factors, std::vector< Expr > &exponents) const |
| | Fills in a vector the exponents corresponding to some factors for the expression. More...
|
| |
| virtual bool | checkIndexStructure (const std::vector< Index > &t_index) const |
| | Checks the compatibility of the index structure of an Indicial expression with another. In a sum, two terms must have exaclty the same index structure. More...
|
| |
| virtual bool | checkIndexStructure (const std::initializer_list< Index > &index) const |
| | Checks the compatibility of the index structure of an Indicial expression with another. In a sum, two terms must have exaclty the same index structure. More...
|
| |
| virtual bool | compareWithDummy (Expr_info expr, std::map< Index, Index > &constraints, bool keepAllCosntraints=false) const |
| | Comparison disregarding name of dummy indices, i.e. the two expressions * are equals even if dummy indices have not the same names in *this and * expr. More...
|
| |
|
bool | compareWithDummy (Expr_info expr, bool keepAllCosntraints=false) const |
| |
| virtual int | getParity (Expr_info t_variable) const |
| | Returns the parity property of the expression with respect to t_variable. More...
|
| |
| virtual bool | askTerm (Expr_info expr, bool exact=false) const |
| | Check if expr can factor *this. More...
|
| |
| virtual bool | dependsOn (Expr_info expr) const |
| | Check recursively if the expression depends on expr. More...
|
| |
|
virtual bool | dependsOn (Parent_info parent) const |
| |
| virtual bool | dependsExplicitlyOn (Expr_info expr) const |
| | Check recursively if expr is present in the expression. More...
|
| |
|
virtual bool | dependsExplicitlyOn (Parent_info parent) const |
| |
| virtual int | isPolynomial (Expr_info expr) const |
| | Determines if the expression is a mononomial term in expr, i.e. a term of the form C*expr^n with C independent of expr, n integer. More...
|
| |
| virtual bool | matchShape (Expr_info expr, bool exact=false) const |
| | In the case of a vectorial-type expression, this function checks if the shape of expr matches itself. More...
|
| |
| virtual bool | hasContractionProperty (Expr_info B) const |
| | Tells (for an Indicial type) if there is a special contraction property with B. More...
|
| |
|
virtual bool | hasChainContractionProperty () const |
| |
|
virtual std::vector< ContractionChain > | getContractionProperties () const |
| |
| virtual Expr | contraction (Expr_info B) const |
| | Applies a special contraction of indices. Before calling this function we must check that there is indeed a contraction by calling the function hasContractionProperty(). More...
|
| |
|
virtual Expr | contraction (const csl::vector_expr &chain) const |
| |
| virtual std::optional< Expr > | collect (std::vector< Expr > const &factors, bool full=false) const |
| | Collects terms in sum according to some factors given by the user. More...
|
| |
| virtual Expr | suppressTerm (Expr_info expr) const |
| | Remove a factor from an expr, that must have been determined before. More...
|
| |
| virtual std::optional< Expr > | suppressExponent (Expr const &factor, Expr const &exponent) const |
| | Returns the expression where the factor factor^exponent has been suppressed. More...
|
| |
| virtual std::optional< Expr > | expand_if (std::function< bool(Expr const &)> const &f, bool full=false, bool inPlace=false) const |
| | Develops the Abstract. More...
|
| |
| virtual std::optional< Expr > | getComplexArgument () const |
| | Evaluates the argument in the complex plane of the Abstract and returns it. More...
|
| |
|
virtual Expr & | applySelfStructureOn (Expr &expr) const |
| |
|
virtual std::optional< Expr > | getTransposed (const Space *space, bool applyProp=true) const |
| |
|
virtual std::optional< Expr > | getTransposed (const std::vector< const Space *> &spaces, bool applyProp=true) const |
| |
|
virtual std::optional< Expr > | getHermitianConjugate (const Space *space) const |
| |
|
virtual std::optional< Expr > | getHermitianConjugate (const std::vector< const Space *> &spaces) const |
| |
| virtual csl::vector_expr | getAlternateForms () const |
| | Calculates and returns all possible alternate forms of the expression in terms of simplifications. For example 1-sin^2(x) is one of the alternate forms of cos^2(x). More...
|
| |
| virtual Expr | applyOperator (const Expr &operand, bool leaveEmpty=false) const |
| | Apply the operator on an operand, iif the expression is an operator. More...
|
| |
| virtual Expr | addition_own (const Expr &expr) const |
| | Contains implementation of special addition for Numerical- and Vectorial-types. More...
|
| |
| virtual Expr | multiplication_own (const Expr &expr, bool side=1) const |
| | Contains implementation of special multiplication for Numerical- and Vectorial-types. More...
|
| |
| virtual Expr | division_own (const Expr &expr) const |
| | Contains implementation of special division for Numerical- and Polynomial-types. For polynomial, the euclidean division of two polynomials is implemented. More...
|
| |
| virtual Expr | exponentiation_own (const Expr &expr) const |
| | Contains implementation of special exponentiation for Numerical- and Vectorial-types. More...
|
| |
| virtual Expr | getRegularExpression () const |
| | Returns a regular expression from the polynomial, that is a sum where the different powers of the variable appear explicitely. More...
|
| |
| virtual Expr | tensordot (const Expr &expr) const |
| | Returns the tensordot of two Vectorial expressions. More...
|
| |
| virtual Expr | dot (const Expr &expr) const |
| | Returns the dot product of two Vectorial expressions. More...
|
| |
| virtual Expr | getSum () const |
| | Calculates and returns the sum of all elements in the Vectorial object. More...
|
| |
| virtual Expr | getProduct () const |
| | Calculates and returns the product of all elements in the Vectorial object. More...
|
| |
| virtual Expr | getVectorialModulus () const |
| | Returns the Vectorial modulus of the Vectorial object, that is defined here as the squared root of the sum of element squared. Example: {A_{11}^2+A_{12}^2+}. More...
|
| |
| virtual Expr | getSubVectorial (int iExcept) const |
| | Allows to pick a part of a Vectorial expression, excluding the iExcept^{th} element. More...
|
| |
| virtual Expr | getSubVectorial (int iExcept, int jExcept) const |
| | Allows to pick a part of a Vectorial expression, excluding the [iExcept^{th},jExcept^{th}] element (useful for matrices). More...
|
| |
| virtual Expr | getSubVectorial (const std::vector< int > &exceptions) const |
| | Allows to pick a part of a Vectorial expression, excluding the iExcept^{th} element. More...
|
| |
|
virtual Expr | getSubVectorial (const std::vector< std::vector< int >> &keepIndices) const |
| |
|
virtual Expr | getSubVectorial (std::vector< std::vector< int >>::const_iterator begin, std::vector< std::vector< int >>::const_iterator end) const |
| |
| virtual Expr | determinant () const |
| | Returns the determinant of the object if it corresponds to a square matrix (or a scalar), 0 else. More...
|
| |
| virtual Expr | trace () const |
| |
| virtual Expr | trace (int axis1, int axis2) const |
| | Calculates the trace over the axis axis1 and axis2 of a tensor. axis1 and axis2 can be the same, in which case the trace just corresponds to the sum over this particular axis. More...
|
| |
| virtual Expr | transpose () const |
| | Calculates and returns the transpose of a 2D matrix. More...
|
| |
|
virtual Expr | hermitian () const |
| |
| virtual Expr | symmetrise () const |
| | Calculates and returns the symmetrization of a 2D matrix. More...
|
| |
| virtual Expr | antisymmetrise () const |
| | Calculates and returns the anti-symmetrization of a 2D matrix. More...
|
| |
| virtual Expr | inverseMatrix () const |
| | Calculates and returns the inverse of a 2D square matrix. The applied method is: A^{-1} = 1/det(A)*Com(A)^T. More...
|
| |
|
virtual Expr | getCanonicalPermutation () const |
| |
|
virtual Expr | applyDiracDelta (const Expr &, const Expr &) const |
| |
| virtual void | operator= (double t_value) |
| | Equivalent to the setValue() function. More...
|
| |
| virtual bool | operator== (int t_value) const |
| |
| virtual bool | operator== (double t_value) const |
| |
| virtual bool | operator!= (int t_value) const |
| |
| virtual bool | operator!= (double t_value) const |
| |
|
int | testDummy (Expr_info expr) const |
| |
|
bool | operator== (const Expr_c &expr) const |
| |
|
bool | operator== (const Expr &expr) const |
| |
|
bool | operator== (const Abstract &other) const |
| |
|
bool | operator!= (Expr_info expr) const |
| |
| bool | operator!= (const Expr_c &expr) const |
| | Compares the Abstract with another. More...
|
| |
|
bool | operator!= (const Expr &expr) const |
| |
|
bool | operator!= (const Abstract &other) const |
| |
| virtual Expr const & | operator[] (int iArg) const |
| | Access operator for multi-argument expressions, equivalent to the function getArgument(). More...
|
| |
| virtual Expr & | operator[] (int iArg) |
| | Access operator for multi-argument expressions, returns a reference so this function is not const. More...
|
| |
| virtual bool | operator< (Expr_info expr) const =0 |
| | Compares the simplicity of the expression to another. More...
|
| |
| bool | operator< (const Expr_c &expr) const |
| | Compares the simplicity of the expression to another. More...
|
| |
| bool | operator> (Expr_info expr) const |
| | Compares the simplicity of the expression to another. More...
|
| |
|
bool | operator> (const Expr_c &expr) const |
| |
|
bool | operator<= (Expr_info expr) const |
| |
| bool | operator>= (Expr_info expr) const |
| | Compares the simplicity of the expression to another. More...
|
| |
| bool | operator<= (const Expr_c &expr) const |
| | Compares the simplicity of the expression to another. More...
|
| |
|
bool | operator>= (const Expr_c &expr) const |
| |