23 #ifndef CSL_LIBRARYFUNCTION_H_INCLUDED 24 #define CSL_LIBRARYFUNCTION_H_INCLUDED 42 return A.name < B.name;
49 static inline size_t nParamThresholdStructure = 10;
54 Expr const& t_expression,
59 std::string
const& getName()
const;
60 std::string getTensorName(
csl::Parent const &tensor)
const;
63 Expr& getExpression();
64 Expr const& getExpression()
const;
65 bool isTensorial()
const;
66 int getPosTensorParameter()
const {
return tensorParameter; }
67 void setPosTensorParameter(
int t_pos) { tensorParameter = t_pos; }
68 std::vector<csl::Tensor>
const& getTensors()
const;
69 std::vector<csl::Tensor>& getTensors();
70 std::vector<std::string>
const& getIntermediateSteps()
const;
71 std::vector<std::string>& getIntermediateSteps();
72 std::vector<LibParameter>
const& getParameters()
const;
74 void setName(std::string_view t_name);
75 void setExpression(
Expr const& t_expression);
76 void setTensorial(
bool t_tensorial);
77 void addTensor(
Expr const& tensor);
78 void setTensors(std::vector<csl::Tensor>
const& t_tensors);
79 Expr addIntermediate(
Expr const& intermediate);
80 void setIntermediateSteps(std::vector<std::string>
const& t_interm);
81 void addParameter(std::string
const ¶m);
82 void setParameters(std::vector<LibParameter>
const& t_parameters);
83 void removeParameter(std::string_view param);
84 void addInitInstruction(std::string
const &t_inst);
88 std::vector<LibParameter> ¶meters,
93 std::vector<LibParameter> ¶meters,
97 void print(std::ostream& out,
99 std::string
const &initInstruction =
"" 104 void printName(std::ostream& out)
const;
107 std::string
const &initInstruction
109 void printExpression(std::ostream& out,
110 Expr const& expression,
112 std::string
const& beginning =
"")
const;
134 std::vector<csl::Tensor> tensors;
136 std::vector<std::string> intermediateSteps;
138 std::vector<std::string> initInstructions;
140 std::vector<LibParameter> parameters;
142 int tensorParameter = -1;
147 #endif // ifndef CSL_LIBRARYFUNCTION_H_INCLUDED Namespace for csl library.
Definition: abreviation.h:34
Definition: libraryfunction.h:45
Definition: libraryfunction.h:36
Definition: diagonalization.h:34
Definition: librarygroup.h:23
Definition: libraryevaluator.h:111
Base classes for all exprs in the program.
Objects handling indexed expressions in order to perform indicial tensor calculations.
bool operator<(const Expr &a, const Expr &b)
see Abstract::operator<()
Definition: abstract.cpp:1423
Definition: libraryevaluator.h:119
Expression type/.
Definition: abstract.h:1573