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:

true if 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:

true if 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:

true if 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 i with respect to var.

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 factor excluding 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 true if parsed state is valid.

Returns:

Valid-state flag.

bool isCompiled() const

Returns true if 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.

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 true if 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.

serialization.hpp

namespace sme
namespace common
struct SmeFileContents
#include <serialization.hpp>

Contents of an .sme project file.

Public Members

std::string xmlModel = {}

SBML model XML.

std::unique_ptr<simulate::SimulationData> simulationData = {}

Optional cached simulation results.

utils.hpp

indexedColors

class indexedColors

Default set of colors.

A vector of default colors

Public Functions

const QColor &operator[](std::size_t i) const

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.

QString sme::common::dblToQStr(double x, int precision = 18)

Convert a double to a QString.

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 int to a vector of bool

std::vector<int> sme::common::toInt(const std::vector<bool> &v)

Convert a vector of bool to a vector of int

std::size_t sme::common::saturatingAdd(std::size_t a, std::size_t b)

Add byte counts with saturation at max size_t.

QString sme::common::formatMemoryBytes(std::size_t nBytes)

Format bytes using binary units (B, KiB, MiB, GiB, TiB)