3#ifndef TETL_LINALG_SCALED_SCALAR_HPP
4#define TETL_LINALG_SCALED_SCALAR_HPP
9namespace etl::linalg::detail {
11template <
typename ScalingFactor,
typename ReferenceValue>
14template <
typename ScalingFactor,
typename Reference,
typename ReferenceValue>
15 requires(scalable<ScalingFactor, ReferenceValue>)
17 : proxy_reference<Reference, ReferenceValue, scaled_scalar<ScalingFactor, Reference, ReferenceValue>> {
20 constexpr explicit scaled_scalar(ScalingFactor
const& scalingFactor, Reference
const& reference)
21 : proxy_reference<Reference, ReferenceValue, scaled_scalar<ScalingFactor, Reference, ReferenceValue>>{reference}
22 , _scalingFactor{scalingFactor}
26 [[nodiscard]]
constexpr auto to_value(Reference reference)
const -> value_type
28 return _scalingFactor * ReferenceValue(reference);
32 ScalingFactor _scalingFactor;
auto declval() noexcept -> add_rvalue_reference_t< T >