ScaledView class
#include <gtopt/linear_interface.hpp>
Zero-copy lazy view that applies a per-element scale factor.
Models a random-access range: view[i] returns data[i] * scales[i] (or data[i] / scales[i] when constructed with divides). When scales are empty, returns raw data unchanged.
Accepts any integer-like index type (int, size_t, ColIndex, RowIndex).
Public types
Public functions
- auto begin() const -> constexpr iterator noexcept
- auto empty() const -> constexpr bool noexcept
- auto end() const -> constexpr iterator noexcept
- auto operator[](auto idx) const -> constexpr double noexcept
- auto ScaledView() -> constexpr defaulted noexcept
-
auto ScaledView(const double* data,
size_
t n, const double* scales, size_ t ns, Op op = Op:: multiply) -> constexpr noexcept - auto ScaledView(std::span<const double> raw) -> constexpr explicit noexcept
- Construct from a raw span (no scaling).
-
auto size() const -> constexpr size_
t noexcept