3#ifndef TETL_LINALG_ACCESSOR_SCALED_HPP
4#define TETL_LINALG_ACCESSOR_SCALED_HPP
13template <
typename ScalingFactor,
typename Accessor>
17 = detail::scaled_scalar<ScalingFactor, typename Accessor::reference, typename Accessor::element_type>;
30 return reference(_scalingFactor, _nestedAccessor.access(p, i));
36 return _nestedAccessor.offset(p, i);
39 [[nodiscard]]
constexpr auto scaling_factor() const -> ScalingFactor {
return _scalingFactor; }
41 [[nodiscard]]
constexpr auto nested_accessor() const -> Accessor {
return _nestedAccessor; }
44 ScalingFactor _scalingFactor;
45 Accessor _nestedAccessor;
Definition accessor_conjugate.hpp:12
constexpr bool is_copy_constructible_v
Definition is_copy_constructible.hpp:30
detail::scaled_scalar< ScalingFactor, typename Accessor::reference, typename Accessor::element_type > reference
Definition accessor_scaled.hpp:16
constexpr auto nested_accessor() const -> Accessor
Definition accessor_scaled.hpp:40
constexpr accessor_scaled(ScalingFactor const &s, Accessor const &a)
Definition accessor_scaled.hpp:21
typename Accessor::data_handle_type data_handle_type
Definition accessor_scaled.hpp:18
constexpr auto access(data_handle_type p, size_t i) const noexcept -> reference
Definition accessor_scaled.hpp:27
accessor_scaled< ScalingFactor, typename Accessor::offset_policy > offset_policy
Definition accessor_scaled.hpp:19
constexpr auto scaling_factor() const -> ScalingFactor
Definition accessor_scaled.hpp:38
constexpr auto offset(data_handle_type p, size_t i) const noexcept -> typename offset_policy::data_handle_type
Definition accessor_scaled.hpp:32
add_const_t< typename reference::value_type > element_type
Definition accessor_scaled.hpp:17