|
| Vector< OutputType > | operator() (const Vector< InputType > &in) |
| | Apply the block element-wise to each vector entry.
|
| Vector< OutputType > | operator() (Vector< InputType > &&in) |
| | Apply the block element-wise (rvalue input).
|
| Matrix< OutputType > | operator() (const Matrix< InputType > &in) |
| | Apply the block element-wise to each matrix entry.
|
| Matrix< OutputType > | operator() (Matrix< InputType > &&in) |
| | Apply the block element-wise (rvalue input).
|
| template<FiniteFieldType U> |
| OutputType | operator() (const U &) |
| | Catch-all for inputs whose element type differs from InputType.
|
| template<FiniteFieldType U> |
| Vector< OutputType > | operator() (const Vector< U > &) |
| template<FiniteFieldType U> |
| Matrix< OutputType > | operator() (const Matrix< U > &) |
template<typename T, typename InputType, typename OutputType>
class CECCO::details::BlockProcessor< T, InputType, OutputType >
CRTP base providing scalar, vector, and matrix block operations.
- Template Parameters
-
| T | Derived block type |
| InputType | Scalar input type |
| OutputType | Scalar output type |
Derived classes implement the scalar call operator; this base supplies vector and matrix overloads, reusing rvalue storage when input and output types match.
Calls with another finite-field type are accepted syntactically and throw at runtime, allowing otherwise discarded non-template branches to remain well-formed.
- Note
- Blocks are movable but non-copyable. Channel copies would duplicate distribution caches and stochastic countdown state, producing statistically coupled block instances.
Definition at line 77 of file blocks.hpp.
template<typename T, typename InputType, typename OutputType>
template<FiniteFieldType U>
Catch-all for inputs whose element type differs from InputType.
- Template Parameters
-
Always throws std::logic_error at runtime. See the class doc for the if constexpr use case that motivates these overloads.
Definition at line 156 of file blocks.hpp.