![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Computer algebra operations LINE needs, as seen by this port. More...
Go to the source code of this file.
Classes | |
| class | line::sym::SymEngineError |
| The symbolic backend is unreachable, or rejected the request. More... | |
| struct | line::sym::CtmcSolution |
| Symbolic stationary distribution of a CTMC. More... | |
| struct | line::sym::SymSensitivity |
| Exact parametric sensitivity, following Trivedi and Bobbio (2017), Sec. More... | |
| struct | line::sym::FluidODEs |
| Symbolic analysis of a fluid vector field. More... | |
| class | line::sym::SymEngine |
| A computer algebra backend. More... | |
Namespaces | |
| namespace | line |
| namespace | line::sym |
Computer algebra operations LINE needs, as seen by this port.
Port of jline.api.sym.SymEngine. C++ has no computer algebra system any more than Java does, so every operation here is delegated to an external engine; SageRestEngine is the SageMath implementation and is resolved by sym_engines.h. Expressions cross the interface as plain ASCII infix strings, e.g. "2*x1 - 3*x2".
EXPRESSION STRINGS ARE NOT COMPARABLE ACROSS CODEBASES, and not even across engine versions: the symbol numbering x1..xE follows event enumeration order and printed normal forms depend on the engine. Compare by substituting values with eval() and comparing numbers; a string diff against the JAR's output is a false failure waiting to happen.
ABSENT VALUES. Java returns null for a field the request did not ask for. Here an absent scalar is the empty string and an absent list or matrix is empty, with an explicit has* flag where emptiness would otherwise be ambiguous.
Definition in file sym_engine.h.