diff --git a/src/language/utils/BinaryOperatorRegisterForRnxn.cpp b/src/language/utils/BinaryOperatorRegisterForRnxn.cpp index b44f42e913f2f24a6aeaf7d538f02fc14133b457..3d8850e79a4129c9a2098baa14b869f48bb8d1ce 100644 --- a/src/language/utils/BinaryOperatorRegisterForRnxn.cpp +++ b/src/language/utils/BinaryOperatorRegisterForRnxn.cpp @@ -39,6 +39,19 @@ BinaryOperatorRegisterForRnxn<Dimension>::_register_product_by_a_scalar() std::make_shared<BinaryOperatorProcessorBuilder<language::multiply_op, Rnxn, double, Rnxn>>()); } +template <size_t Dimension> +void +BinaryOperatorRegisterForRnxn<Dimension>::_register_product_by_a_vector() +{ + OperatorRepository& repository = OperatorRepository::instance(); + + using Rnxn = TinyMatrix<Dimension>; + using Rn = TinyVector<Dimension>; + + repository.addBinaryOperator<language::multiply_op>( + std::make_shared<BinaryOperatorProcessorBuilder<language::multiply_op, Rn, Rnxn, Rn>>()); +} + template <size_t Dimension> template <typename OperatorT> void @@ -58,6 +71,7 @@ BinaryOperatorRegisterForRnxn<Dimension>::BinaryOperatorRegisterForRnxn() this->_register_comparisons(); this->_register_product_by_a_scalar(); + this->_register_product_by_a_vector(); this->_register_arithmetic<language::plus_op>(); this->_register_arithmetic<language::minus_op>(); diff --git a/src/language/utils/BinaryOperatorRegisterForRnxn.hpp b/src/language/utils/BinaryOperatorRegisterForRnxn.hpp index 7efb4cbb8691c23cec22e5f82c5c7dae83b2b49c..594740b629b0a7201d64139fd8e2ce4a12b38cd2 100644 --- a/src/language/utils/BinaryOperatorRegisterForRnxn.hpp +++ b/src/language/utils/BinaryOperatorRegisterForRnxn.hpp @@ -10,6 +10,7 @@ class BinaryOperatorRegisterForRnxn void _register_comparisons(); void _register_product_by_a_scalar(); + void _register_product_by_a_vector(); template <typename OperatorT> void _register_arithmetic();