timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
multiply.hpp File Reference
#include "timemory/math/fwd.hpp"
#include "timemory/mpl/concepts.hpp"
#include "timemory/mpl/types.hpp"
#include "timemory/utility/types.hpp"
#include <cassert>
#include <cmath>
#include <limits>
#include <utility>
+ Include dependency graph for multiply.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  tim
 
namespace  tim::math
 

Functions

template<typename Tp , typename Up >
auto tim::math::multiply (Tp &_lhs, Up _rhs, type_list<>,...) -> decltype(_lhs *=_rhs, void())
 
template<typename Tp , typename Up , typename Vp = typename Tp::value_type>
auto tim::math::multiply (Tp &_lhs, const Up &_rhs, type_list<>, long) -> decltype((std::begin(_lhs), std::begin(_rhs)), void())
 
template<typename Tp , typename Up , typename Vp = typename Tp::value_type, enable_if_t< std::is_arithmetic< Up >::value > = 0>
auto tim::math::multiply (Tp &_lhs, const Up &_rhs, type_list<>, long) -> decltype(std::begin(_lhs), void())
 
template<typename Tp , typename Up , typename Kp = typename Tp::key_type, typename Mp = typename Tp::mapped_type, enable_if_t<!std::is_arithmetic< Up >::value > = 0>
auto tim::math::multiply (Tp &_lhs, const Up &_rhs, type_list<>, int) -> decltype(std::begin(_lhs), void())
 
template<typename Tp , typename Up >
auto tim::math::multiply (Tp &, const Up &, index_sequence<>, int)
 
template<typename Tp , typename Up , size_t... Idx, enable_if_t<!std::is_arithmetic< Up >::value > = 0>
auto tim::math::multiply (Tp &_lhs, const Up &_rhs, index_sequence< Idx... >, long) -> decltype(std::get< 0 >(_lhs), void())
 
template<typename Tp , typename Up = Tp, enable_if_t<!concepts::is_null_type< Tp >::value > = 0>
Tp & tim::math::multiply (Tp &, const Up &)