inc
Symbolic
-
class Symbolic
Parse, manipulate, and evaluate symbolic expressions.
Supports function expansion, constant substitution, symbolic derivatives, and optional LLVM compilation for fast repeated evaluation.
Public Functions
-
Symbolic()
Construct an empty symbolic object.
-
explicit Symbolic(const std::vector<std::string> &expressions, const std::vector<std::string> &variables = {}, const std::vector<std::pair<std::string, double>> &constants = {}, const std::vector<SymbolicFunction> &functions = {}, bool allow_unknown_symbols = false)
Construct and parse multiple expressions.
- Parameters:
expressions – Expressions to parse.
variables – Allowed variable symbols.
constants – Constant substitutions.
functions – User-defined functions.
allow_unknown_symbols – If
true, skip unknown-symbol checks.
-
explicit Symbolic(const std::string &expression, const std::vector<std::string> &variables = {}, const std::vector<std::pair<std::string, double>> &constants = {}, const std::vector<SymbolicFunction> &functions = {}, bool allow_unknown_symbols = false)
Construct and parse a single expression.
- Parameters:
expression – Expression to parse.
variables – Allowed variable symbols.
constants – Constant substitutions.
functions – User-defined functions.
allow_unknown_symbols – If
true, skip unknown-symbol checks.
-
bool parse(const std::vector<std::string> &expressions, const std::vector<std::string> &variables = {}, const std::vector<std::pair<std::string, double>> &constants = {}, const std::vector<SymbolicFunction> &functions = {}, bool allow_unknown_symbols = false)
Parse multiple expressions.
- Parameters:
expressions – Expressions to parse.
variables – Allowed variable symbols.
constants – Constant substitutions.
functions – User-defined functions.
allow_unknown_symbols – If
true, skip unknown-symbol checks.
- Returns:
trueif parsing succeeded.
-
bool parse(const std::string &expression, const std::vector<std::string> &variables = {}, const std::vector<std::pair<std::string, double>> &constants = {}, const std::vector<SymbolicFunction> &functions = {}, bool allow_unknown_symbols = false)
Parse a single expression.
- Parameters:
expression – Expression to parse.
variables – Allowed variable symbols.
constants – Constant substitutions.
functions – User-defined functions.
allow_unknown_symbols – If
true, skip unknown-symbol checks.
- Returns:
trueif parsing succeeded.
-
bool compile(bool doCSE = true, unsigned optLevel = 3)
Compile parsed expressions to LLVM.
- Parameters:
doCSE – Enable common subexpression elimination.
optLevel – LLVM optimization level.
- Returns:
trueif compilation succeeded.
-
std::string expr(std::size_t i = 0) const
Original expression string.
- Parameters:
i – Expression index.
- Returns:
Original expression string.
-
std::string inlinedExpr(std::size_t i = 0) const
Expression string after substitutions/inlining.
- Parameters:
i – Expression index.
- Returns:
Inlined expression string.
-
std::string cudaCode(std::size_t i = 0, bool useFloat = false) const
CUDA code string after substitutions/inlining.
- Parameters:
i – Expression index.
useFloat – If
true, print single-precision CUDA code.
- Returns:
CUDA expression string.
-
std::string metalCode(std::size_t i = 0) const
Metal code string after substitutions/inlining.
- Parameters:
i – Expression index.
- Returns:
Metal expression string.
-
std::string diff(const std::string &var, std::size_t i = 0) const
Derivative of expression
iwith respect tovar.- Parameters:
var – Differentiation variable.
i – Expression index.
- Returns:
Derivative expression string.
-
void relabel(const std::vector<std::string> &newVariables)
Rename variables in parsed/compiled expressions.
- Parameters:
newVariables – Replacement variable names.
-
void rescale(double factor, const std::vector<std::string> &exclusions = {})
Multiply expression by
factorexcluding selected symbols.- Parameters:
factor – Multiplicative scale factor.
exclusions – Symbols to leave unchanged.
-
void eval(std::vector<double> &results, const std::vector<double> &vars = {}) const
Evaluate compiled expressions into
results.- Parameters:
results – Output results vector.
vars – Input variable values.
-
void eval(double *results, const double *vars) const
Evaluate compiled expressions into raw arrays.
- Parameters:
results – Output array pointer.
vars – Input variable array pointer.
-
bool isValid() const
Returns
trueif parsed state is valid.- Returns:
Valid-state flag.
-
bool isCompiled() const
Returns
trueif expressions have been LLVM-compiled.- Returns:
Compiled-state flag.
-
const std::string &getErrorMessage() const
Latest parse/compile error message.
- Returns:
Error message string.
-
void clear()
Clear all parsed and compiled state.
-
Symbolic()
TiffReader
-
class TiffReader
Reader for single- or multi-page TIFF images.
Public Functions
-
explicit TiffReader(const std::string &filename)
Load image stack from TIFF file.
- Parameters:
filename – TIFF filename.
-
bool empty() const
Returns
trueif no images were loaded.- Returns:
Empty flag.
-
sme::common::ImageStack getImages() const
Get loaded images as an
ImageStack.- Returns:
Image stack.
-
const QString &getErrorMessage() const
Error message from the last load attempt.
- Returns:
Error message.
-
explicit TiffReader(const std::string &filename)
serialization.hpp
utils.hpp
indexedColors
Functions
-
std::vector<std::string> sme::common::toStdString(const QStringList &q)
Convert a QStringList to a vector of std::string.
-
QStringList sme::common::toQString(const std::vector<std::string> &v)
Convert a vector of std::string to a QStringList.
-
std::vector<QRgb> sme::common::toStdVec(const QVector<QRgb> &q)
Convert a QVector of QRgb to a vector of QRgb.
-
std::vector<bool> sme::common::toBool(const std::vector<int> &v)
Convert a vector of
intto a vector ofbool
-
std::vector<int> sme::common::toInt(const std::vector<bool> &v)
Convert a vector of
boolto a vector ofint