ClikaRT::spec::SymFloat
class
Header: ClikaRT/compute/symbolic.h
A symbolic-or-concrete float, e.g. an interpolation scale that derives a dimension. Arithmetic returns Result because it is fallible: a concrete pair folds immediately, while a symbolic operand is evaluated by the symbolic engine, which can report an error for an unsupported combination.
Member functions
SymFloat(double)
SymFloat(double concrete)
A concrete double; implicit, so a plain literal composes directly.
Declared in ClikaRT/compute/symbolic.h, line 130
SymFloat(SymInt)
explicit SymFloat(const SymInt& value)
Widen an integer dimension to float (e.g. for dim * scale).
Declared in ClikaRT/compute/symbolic.h, line 132
SymFloat(SymFloat)
SymFloat(const SymFloat& other)
Copy: an independent value (a symbolic node, when present, is not shared).
Declared in ClikaRT/compute/symbolic.h, line 134
SymFloat(SymFloat)
SymFloat(SymFloat&& other) noexcept
Move: takes over the symbolic node; other reverts to a concrete default.
Declared in ClikaRT/compute/symbolic.h, line 136
operator=(SymFloat)
Copy-assign; same value semantics as the copy ctor.
Declared in ClikaRT/compute/symbolic.h, line 138
operator=(SymFloat)
Move-assign; same transfer as the move ctor.
Declared in ClikaRT/compute/symbolic.h, line 140
~SymFloat()
~SymFloat()
Releases the symbolic node, if any.
Declared in ClikaRT/compute/symbolic.h, line 142
add()
Symbolic addition; a concrete pair folds immediately.
Throws
ClikaRT::Error: when the symbolic engine cannot evaluate the combination (see the class note).
Declared in ClikaRT/compute/symbolic.h, line 148
sub()
Symbolic subtraction.
Throws
ClikaRT::Error: asadd.
Declared in ClikaRT/compute/symbolic.h, line 151
mul()
Symbolic multiplication.
Throws
ClikaRT::Error: asadd.
Declared in ClikaRT/compute/symbolic.h, line 154
div()
Symbolic division.
Throws
ClikaRT::Error: asadd.
Declared in ClikaRT/compute/symbolic.h, line 157
to_int()
SymInt to_int(DataType dtype = DataType::Int64) const
Truncate toward zero to an integer dimension (== floor for the non-negative values shapes use). dtype is the integer target.
Declared in ClikaRT/compute/symbolic.h, line 161
is_concrete()
bool is_concrete() const noexcept
True when this holds a plain double (no symbolic node).
Declared in ClikaRT/compute/symbolic.h, line 164
concrete_value()
std::optional<double> concrete_value() const
The value iff is_concrete(), else nullopt.
Declared in ClikaRT/compute/symbolic.h, line 166