Go to the documentation of this file. 1 #ifndef OGLPLUS_TEXGEN_FOLD_NODE_HPP
9 #define OGLPLUS_TEXGEN_FOLD_NODE_HPP
15 namespace eagine::oglp::texgen {
17 enum class fold_function {
25 class fold_output :
public multi_input_output {
27 friend class fold_node;
32 fold_output(node_intf& parent, fold_function);
34 fold_output(node_intf& parent)
35 : fold_output(parent, fold_function::
multiply) {}
41 std::ostream& definitions(std::ostream& out, compile_context& ctxt)
override;
44 class fold_node :
public multi_input_node {
51 fold_output& single_output()
override {
55 fold_node& set_function(fold_function func) {
63 #if !OGLPLUS_LINK_LIBRARY || defined(OGLPLUS_IMPLEMENTING_LIBRARY)
64 #include <oglplus/texgen/fold_node.inl>
67 #endif // OGLPLUS_TEXGEN_FOLD_NODE_HPP
value_type
Value tree value element data type enumeration.
Definition: interface.hpp:27
basic_string_span< const char > string_view
Alias for const string views.
Definition: string_span.hpp:116
static auto type_name(const T &) noexcept -> std::string
Returns the demangled name for type T.
Definition: type_name.hpp:24
static auto multiply(const matrix< T, K, M, RM1, V > &m1, const matrix< T, N, K, RM2, V > &m2) noexcept -> matrix< T, N, M, RM1, V >
Matrix multiplication function.
Definition: matrix.hpp:529