1#ifndef _SYMBOLIC_FUNCTIONS_H_
2#define _SYMBOLIC_FUNCTIONS_H_
13#include "../../Constants.h"
16extern const RCP<const Basic>
PI;
19extern const double mu_0;
26extern RCP<const Basic>
j;
28extern RCP<const Basic>
omega;
30extern RCP<const Basic>
s;
60extern complex<double>
substitute_symbol(
const RCP<const Basic>& expr,
const std::string& symbol_name,
double value);
69extern complex<double>
substitute_symbol(
const RCP<const Basic>& expr, RCP<const Basic> symbol_name,
double value);
78extern complex<double>
substitute_symbol(
const RCP<const Basic>& expr,
const std::string& symbol_name, complex<double> value);
87extern complex<double>
substitute_symbol(
const RCP<const Basic>& expr, RCP<const Basic> symbol_name, complex<double> value);
123extern MatrixXcd
substitute_symbol(DenseMatrix, RCP<const Basic>, complex<double>);
132extern RCP<const Basic>
substitute_symbols(
const RCP<const Basic>& expr,
const std::vector<RCP<const Basic>>& symbols,
double value);
139extern double eval_basic(
const RCP<const Basic>& expr);
162extern Eigen::SparseMatrix<double>
absoluteSparseMatrix(
const Eigen::SparseMatrix<std::complex<double>>& matrix);
169extern RCP<const Basic>
inv(
const RCP<const Basic>& val);
177extern RCP<const Basic>
addSym(
const RCP<const Basic>& a,
const RCP<const Basic>& b);
185extern RCP<const Basic>
subSym(
const RCP<const Basic>& a,
const RCP<const Basic>& b);
RCP< const Basic > addSym(const RCP< const Basic > &a, const RCP< const Basic > &b)
Symbolic addition a + b.
Definition Symbolic_functions.cpp:261
Eigen::SparseMatrix< double > absoluteSparseMatrix(const Eigen::SparseMatrix< std::complex< double > > &matrix)
Takes the element-wise absolute value of a complex sparse matrix.
Definition Symbolic_functions.cpp:32
complex< double > substitute_symbol(const RCP< const Basic > &expr, const std::string &symbol_name, double value)
Substitutes a named symbol with a real value in an expression.
Definition Symbolic_functions.cpp:62
RCP< const Basic > subSym(const RCP< const Basic > &a, const RCP< const Basic > &b)
Symbolic subtraction a - b.
Definition Symbolic_functions.cpp:267
RCP< const Basic > j
Imaginary unit j.
Definition Symbolic_functions.cpp:9
const RCP< const Basic > PI
Symbolic representation of π.
Definition Symbolic_functions.cpp:8
double eval_basic(const RCP< const Basic > &expr)
Evaluates a symbolic expression to a real scalar.
Definition Symbolic_functions.cpp:158
MatrixXd kron_reduction(MatrixXd, vector< int >)
Kron-reduces a real matrix by eliminating specified nodes.
Definition Symbolic_functions.cpp:172
const double mu_0
Vacuum permeability (H/m).
Definition Standard_functions.cpp:8
void fillWithZero(DenseMatrix &mat)
Sets every entry of a SymEngine dense matrix to zero in place.
Definition Symbolic_functions.cpp:26
const double epsilon_0
Vacuum permittivity (F/m).
Definition Standard_functions.cpp:9
RCP< const Basic > s
Complex frequency symbol s = jω.
Definition Symbolic_functions.cpp:11
DenseMatrix createZeroMatrix(int size1, int size2)
Creates a zero-filled SymEngine dense matrix.
Definition Symbolic_functions.cpp:15
RCP< const Basic > inv(const RCP< const Basic > &val)
Symbolic multiplicative inverse (1/x).
Definition Symbolic_functions.cpp:257
DenseMatrix eigenToSymEngineDenseMatrix(const MatrixXcd &eigenMat)
Converts an Eigen complex matrix to a SymEngine DenseMatrix.
Definition Symbolic_functions.cpp:43
RCP< const Basic > substitute_symbols(const RCP< const Basic > &expr, const std::vector< RCP< const Basic > > &symbols, double value)
Substitutes multiple symbols with the same real value in an expression.
Definition Symbolic_functions.cpp:149
const double gamma_num
Euler–Mascheroni constant.
Definition Standard_functions.cpp:10
RCP< const Basic > omega
Angular frequency symbol ω.
Definition Symbolic_functions.cpp:10