Documentation of CSL
Namespaces | Functions
interface.h File Reference
#include "abstract.h"
#include "parent.h"
#include "options.h"
Include dependency graph for interface.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 csl
 Namespace for csl library.
 

Functions

template<class T >
csl::Type csl::GetType (T const &expr)
 
template<class T >
csl::Type csl::GetPrimaryType (T const &expr)
 
size_t csl::Size (Expr const &expr)
 
Expr csl::GetArgument (Expr const &expr, size_t pos=0)
 
bool csl::GetCommutable (csl::Expr const &expr)
 
bool csl::GetCommutable (csl::Expr_info expr)
 
bool csl::GetCommutable (csl::Abstract const &expr)
 
Expr csl::GetSymbol (std::string_view name, Expr const &init)
 
Parent csl::GetParent (std::string_view name, Expr const &init)
 
bool csl::DependsOn (Expr const &init, Expr const &x)
 
bool csl::DependsExplicitlyOn (Expr const &init, Expr const &x)
 
bool csl::DependsOn (Expr const &init, csl::Parent const &x)
 
bool csl::DependsExplicitlyOn (Expr const &init, csl::Parent const &x)
 
void csl::Expand (Expr &expression, bool full=false, bool inplace=false)
 
Expr csl::Expanded (const Expr &expression, bool full=false, bool inplace=false)
 
void csl::ExpandIf (Expr &expression, std::function< bool(Expr const &)> const &f, bool full=false, bool inplace=false)
 
Expr csl::ExpandedIf (const Expr &expression, std::function< bool(Expr const &)> const &f, bool full=false, bool inplace=false)
 
void csl::DeepExpand (Expr &expression, bool inplace=false)
 
Expr csl::DeepExpanded (Expr const &expression, bool inplace=false)
 
void csl::DeepExpandIf (Expr &expression, std::function< bool(Expr const &)> const &f, bool inplace=false)
 
Expr csl::DeepExpandedIf (Expr const &expression, std::function< bool(Expr const &)> const &f, bool inplace=false)
 
void csl::DeepExpandIf_lock (Expr &expression, std::function< bool(Expr const &)> const &f, int lockId=0, bool inplace=false, bool refactor=false)
 
Expr csl::DeepExpandedIf_lock (Expr const &expression, std::function< bool(Expr const &)> const &f, int lockId=0, bool inplace=false, bool refactor=false)
 
void csl::Factor (Expr &expression, bool full=false)
 
void csl::Factor (Expr &expression, Expr_info factor, bool full=false)
 
void csl::Factor (Expr &expression, Expr const &factor, bool full=false)
 
Expr csl::Factored (const Expr &expression, bool full=false)
 
Expr csl::Factored (const Expr &expression, Expr_info factor, bool full=false)
 
Expr csl::Factored (const Expr &expression, const Expr &factor, bool full=false)
 
void csl::DeepFactor (Expr &expression)
 
void csl::DeepFactor (Expr &expression, Expr_info factor)
 
void csl::DeepFactor (Expr &expression, Expr const &factor)
 
Expr csl::DeepFactored (const Expr &expression)
 
Expr csl::DeepFactored (const Expr &expression, Expr_info factor)
 
Expr csl::DeepFactored (const Expr &expression, const Expr &factor)
 
void csl::Collect (Expr &expr, std::vector< Expr > const &factors)
 
void csl::DeepCollect (Expr &expr, std::vector< Expr > const &factors)
 
Expr csl::Collected (Expr const &expr, std::vector< Expr > const &factors)
 
Expr csl::DeepCollected (Expr const &expr, std::vector< Expr > const &factors)
 
Expr csl::Distributed (Expr const &expression, Expr_info factor, bool full=false)
 
void csl::Distribute (Expr &expression, Expr_info factor, bool full=false)
 
Expr csl::Distributed (Expr const &expression, Expr const &factor, bool full=false)
 
void csl::Distribute (Expr &expression, Expr const &factor, bool full=false)
 
Expr csl::DeepDistributed (Expr const &expression, Expr_info factor)
 
void csl::DeepDistribute (Expr &expression, Expr_info factor)
 
Expr csl::DeepDistributed (Expr const &expression, Expr const &factor)
 
void csl::DeepDistribute (Expr &expression, Expr const &factor)
 
Expr csl::Distributed (Expr const &expression, Parent_info factor, bool full=false)
 
void csl::Distribute (Expr &expression, Parent_info factor, bool full=false)
 
Expr csl::Distributed (Expr const &expression, Parent const &factor, bool full=false)
 
void csl::Distribute (Expr &expression, Parent const &factor, bool full=false)
 
Expr csl::DeepDistributed (Expr const &expression, Parent_info factor)
 
void csl::DeepDistribute (Expr &expression, Parent_info factor)
 
Expr csl::DeepDistributed (Expr const &expression, Parent const &factor)
 
void csl::DeepDistribute (Expr &expression, Parent const &factor)
 
Expr csl::DistributedIf (Expr const &expression, std::function< bool(Expr const &)> f, bool full=false)
 
void csl::DistributeIf (Expr &expression, std::function< bool(Expr const &)> f, bool full=false)
 
Expr csl::DeepDistributedIf (Expr const &expression, std::function< bool(Expr const &)> f)
 
void csl::DeepDistributeIf (Expr &expression, std::function< bool(Expr const &)> f)
 
Expr csl::GetTerm (const Expr &expression)
 
Expr csl::Derived (const Expr &expression, Expr_info variable)
 
Expr csl::Derived (const Expr &expression, const Expr &variable)
 
void csl::Derive (Expr &expression, Expr_info variable)
 
void csl::Derive (Expr &expression, const Expr &variable)
 
Expr csl::GetPolynomialTerm (const Expr &expression, Expr_info variable, int order)
 
Expr csl::GetPolynomialTerm (const Expr &expression, const Expr &variable, int order)
 
Expr csl::Evaluated (const Expr &expression)
 
Expr csl::Evaluated (const Expr &expression, csl::eval::mode user_mode)
 
void csl::Evaluate (Expr &expr)
 
void csl::Evaluate (Expr &expr, eval::mode user_mode)
 
ComplexProperty csl::GetComplexProperty (Expr const &expr)
 
void csl::SetComplexProperty (Expr &expr, ComplexProperty prop)
 
ComplexProperty csl::GetComplexProperty (csl::Parent const &parent)
 
void csl::SetComplexProperty (csl::Parent &parent, ComplexProperty prop)
 
template<class T >
void csl::SetComplexProperty (T parent, ComplexProperty prop)
 
Expr csl::GetRealPart (const Expr &expression)
 
Expr csl::GetImaginaryPart (const Expr &expression)
 
Expr csl::GetComplexModulus (const Expr &expression)
 
Expr csl::GetComplexArgument (const Expr &expression)
 
Expr csl::GetComplexConjugate (const Expr &expression)
 
Expr csl::GetTransposed (const Expr &expression, const Space *space, bool applyProp=true)
 
Expr csl::GetTransposed (const Expr &expression, const std::vector< const Space *> &spaces, bool applyProp=true)
 
Expr csl::GetHermitianConjugate (const Expr &expression, const Space *space)
 
Expr csl::GetHermitianConjugate (const Expr &expression, const std::vector< const Space *> &spaces)
 
Expr csl::Swapped (const Expr &expression, const Index &index1, const Index &index2, bool refresh=true)
 
Expr csl::Swapped (const Expr &expression, const Expr &index1, const Expr &index2, bool refresh=true)
 
Expr csl::Swapped (const Expr &expression, const Parent &index1, const Parent &index2, bool refresh=true)
 
template<class T >
void csl::Swap (Expr &expression, T const &old_obj, T const &new_obj)
 
Expr csl::ContractIndex (const Expr &expression, const Index &index)
 
csl::Index csl::GenerateIndex (const csl::Space *space, const std::string &name="")
 
csl::Tensor csl::GetDelta (const csl::Space *space)
 
csl::Tensor csl::GetMetric (const csl::Space *space)
 
csl::Tensor csl::GetEpsilon (const csl::Space *space)
 
csl::Tensor csl::GetDelta (const csl::Space &space)
 
csl::Tensor csl::GetMetric (const csl::Space &space)
 
csl::Tensor csl::GetEpsilon (const csl::Space &space)
 
Parent csl::GetParent (Expr const &tensor)
 
Tensor csl::GetTensorParent (Expr const &tensor)
 
TensorField csl::GetTensorFieldParent (Expr const &tensor)
 
TDerivative csl::GetTDerivativeParent (Expr const &tensor)
 
void csl::AddSelfContraction (csl::Tensor &parent, Expr const &A, Expr const &B, Expr const &res)
 
void csl::AddContractionProperty (csl::Tensor &parent, std::vector< Expr > const &tensors, Expr const &res)
 
void csl::AddComplexProperty (csl::Tensor &parent, Expr const &A, Expr const &B)
 
void csl::AddTransposedProperty (csl::Tensor &parent, csl::Space const *space, Expr const &A, Expr const &B)
 
void csl::AddHermitianProperty (csl::Tensor &parent, csl::Space const *space, Expr const &A, Expr const &B)
 
LibDependency csl::GetLibraryDependencies (Expr const &expression)
 
bool csl::IsIndexed (Expr const &expr)
 
bool csl::IsNumerical (Expr const &expr)
 
bool csl::IsLiteral (Expr const &expr)
 
bool csl::IsScalarFunction (Expr const &expr)
 
bool csl::IsMultiFunction (Expr const &expr)
 
bool csl::IsVectorial (Expr const &expr)
 
bool csl::IsIndicial (Expr const &expr)
 
bool csl::IsField (Expr const &expr)
 
bool csl::IsArbitrary (Expr const &expr)
 
bool csl::IsInteger (Expr const &expr)
 
bool csl::IsFloat (Expr const &expr)
 
bool csl::IsIntFraction (Expr const &expr)
 
bool csl::IsIntFactorial (Expr const &expr)
 
bool csl::IsComplex (Expr const &expr)
 
bool csl::IsNumericalEval (Expr const &expr)
 
bool csl::IsImaginary (Expr const &expr)
 
bool csl::IsConstant (Expr const &expr)
 
bool csl::IsVariable (Expr const &expr)
 
bool csl::IsExp (Expr const &expr)
 
bool csl::IsLog (Expr const &expr)
 
bool csl::IsDiracDelta (Expr const &expr)
 
bool csl::IsAbs (Expr const &expr)
 
bool csl::IsCos (Expr const &expr)
 
bool csl::IsSin (Expr const &expr)
 
bool csl::IsTan (Expr const &expr)
 
bool csl::IsCosh (Expr const &expr)
 
bool csl::IsSinh (Expr const &expr)
 
bool csl::IsTanh (Expr const &expr)
 
bool csl::IsACos (Expr const &expr)
 
bool csl::IsASin (Expr const &expr)
 
bool csl::IsATan (Expr const &expr)
 
bool csl::IsACosh (Expr const &expr)
 
bool csl::IsASinh (Expr const &expr)
 
bool csl::IsATanh (Expr const &expr)
 
bool csl::IsScalar (Expr const &expr)
 
bool csl::IsRealPart (Expr const &expr)
 
bool csl::IsImaginaryPart (Expr const &expr)
 
bool csl::IsITensor (Expr const &expr)
 
bool csl::IsScalarField (Expr const &expr)
 
bool csl::IsTensorField (Expr const &expr)
 
bool csl::IsTensorialDerivative (Expr const &expr)
 
bool csl::IsStandardDuo (Expr const &expr)
 
bool csl::IsStandardMult (Expr const &expr)
 
bool csl::IsPow (Expr const &expr)
 
bool csl::IsProd (Expr const &expr)
 
bool csl::IsSum (Expr const &expr)
 
bool csl::IsPolynomial (Expr const &expr)
 
bool csl::IsDerivative (Expr const &expr)
 
bool csl::IsCommutator (Expr const &expr)
 
bool csl::IsAngle (Expr const &expr)
 
bool csl::IsFactorial (Expr const &expr)
 
bool csl::IsIntegral (Expr const &expr)
 
bool csl::IsScalarIntegral (Expr const &expr)
 
bool csl::IsVectorIntegral (Expr const &expr)
 
bool csl::IsVector (Expr const &expr)
 
bool csl::IsMatrix (Expr const &expr)
 
bool csl::IsHighDTensor (Expr const &expr)
 
bool csl::IsIndexed (Expr_info expr)
 
bool csl::IsNumerical (Expr_info expr)
 
bool csl::IsLiteral (Expr_info expr)
 
bool csl::IsScalarFunction (Expr_info expr)
 
bool csl::IsMultiFunction (Expr_info expr)
 
bool csl::IsVectorial (Expr_info expr)
 
bool csl::IsIndicial (Expr_info expr)
 
bool csl::IsField (Expr_info expr)
 
bool csl::IsArbitrary (Expr_info expr)
 
bool csl::IsInteger (Expr_info expr)
 
bool csl::IsFloat (Expr_info expr)
 
bool csl::IsIntFraction (Expr_info expr)
 
bool csl::IsIntFactorial (Expr_info expr)
 
bool csl::IsComplex (Expr_info expr)
 
bool csl::IsNumericalEval (Expr_info expr)
 
bool csl::IsImaginary (Expr_info expr)
 
bool csl::IsConstant (Expr_info expr)
 
bool csl::IsVariable (Expr_info expr)
 
bool csl::IsExp (Expr_info expr)
 
bool csl::IsLog (Expr_info expr)
 
bool csl::IsDiracDelta (Expr_info expr)
 
bool csl::IsAbs (Expr_info expr)
 
bool csl::IsCos (Expr_info expr)
 
bool csl::IsSin (Expr_info expr)
 
bool csl::IsTan (Expr_info expr)
 
bool csl::IsCosh (Expr_info expr)
 
bool csl::IsSinh (Expr_info expr)
 
bool csl::IsTanh (Expr_info expr)
 
bool csl::IsACos (Expr_info expr)
 
bool csl::IsASin (Expr_info expr)
 
bool csl::IsATan (Expr_info expr)
 
bool csl::IsACosh (Expr_info expr)
 
bool csl::IsASinh (Expr_info expr)
 
bool csl::IsATanh (Expr_info expr)
 
bool csl::IsScalar (Expr_info expr)
 
bool csl::IsRealPart (Expr_info expr)
 
bool csl::IsImaginaryPart (Expr_info expr)
 
bool csl::IsITensor (Expr_info expr)
 
bool csl::IsScalarField (Expr_info expr)
 
bool csl::IsTensorField (Expr_info expr)
 
bool csl::IsTensorialDerivative (Expr_info expr)
 
bool csl::IsStandardDuo (Expr_info expr)
 
bool csl::IsStandardMult (Expr_info expr)
 
bool csl::IsPow (Expr_info expr)
 
bool csl::IsProd (Expr_info expr)
 
bool csl::IsSum (Expr_info expr)
 
bool csl::IsPolynomial (Expr_info expr)
 
bool csl::IsDerivative (Expr_info expr)
 
bool csl::IsCommutator (Expr_info expr)
 
bool csl::IsAngle (Expr_info expr)
 
bool csl::IsFactorial (Expr_info expr)
 
bool csl::IsIntegral (Expr_info expr)
 
bool csl::IsScalarIntegral (Expr_info expr)
 
bool csl::IsVectorIntegral (Expr_info expr)
 
bool csl::IsVector (Expr_info expr)
 
bool csl::IsMatrix (Expr_info expr)
 
bool csl::IsHighDTensor (Expr_info expr)
 
void csl::ApplySelfProperty (Expr &init, csl::Tensor &tensor, Expr const &A, Expr const &B, Expr const &res)
 Declares a self contraction property just the time of a refresh in order to apply it on one expression. More...
 
void csl::ApplyChainProperty (Expr &init, csl::Tensor &tensor, std::vector< Expr > const &prod, Expr const &res)
 Declares a chain contraction property just the time of a refresh in order to apply it on one expression. More...
 
bool csl::CheckValidity (Expr const &init, std::vector< Expr_info > encountered=std::vector< Expr_info >())
 Checks the validity of an expression. More...
 
size_t csl::MemorySizeOf (Expr const &expression)
 Calculates an estimate of the total memory that an expression takes. More...
 

Detailed Description

Author
Grégoire Uhlrich
Version
1.3