26 template <adaptable Matrix>
34 static constexpr
size_t alignment = matrix_t::alignment;
48 template <
typename V = default_vec>
61 for (
size_t i = 0; i < etl::dim<0>(
value); ++i) {
72 for (
size_t i = 0; i < etl::dim<0>(
value); ++i) {
108 template <convertible_expr<value_type> E>
117 validate_assign(*
this, e);
121 if (e.alias(*
this)) {
146 template <etl_expr R>
153 validate_expression(*
this, rhs);
154 rhs.assign_add_to(*
this);
163 template <etl_expr R>
170 validate_expression(*
this, rhs);
171 rhs.assign_sub_to(*
this);
180 template <etl_expr R>
187 validate_expression(*
this, rhs);
188 rhs.assign_mul_to(*
this);
197 template <etl_expr R>
204 validate_expression(*
this, rhs);
205 rhs.assign_mul_to(*
this);
214 template <etl_expr R>
221 validate_expression(*
this, rhs);
222 rhs.assign_div_to(*
this);
235 return {
value, i, j};
238 using base_type::operator();
244 template <
typename Matrix>
uni_lower_matrix & operator-=(const R &rhs)
Multiply each element by the value of the elements in the right hand side expression.
Definition: uni_lower.hpp:164
CRTP class to inject iterators functions.
Definition: iterable.hpp:23
uni_lower_matrix & operator=(const uni_lower_matrix &rhs)=default
Assign to the matrix by copy.
uni_lower_matrix & operator/=(const R &rhs)
Modulo each element by the value of the elements in the right hand side expression.
Definition: uni_lower.hpp:215
value_t< matrix_t > value_type
The value type.
Definition: uni_lower.hpp:36
void assign_to(L &&lhs) const
Assign to the given left-hand-side expression.
Definition: adapter.hpp:279
Contains base class for adapters.
uni_lower_matrix & operator+=(const R &rhs)
Multiply each element by the value of the elements in the right hand side expression.
Definition: uni_lower.hpp:147
uni_lower_matrix & operator*=(const R &rhs)
Multiply each element by the value of the elements in the right hand side expression.
Definition: uni_lower.hpp:181
static constexpr size_t alignment
The memory alignment.
Definition: uni_lower.hpp:34
Exception that is thrown when an operation is made to a uni lower triangular matrix that would render...
Definition: uni_lower_exception.hpp:24
Contains uni lower triangular matrix reference proxy implementation.
typename V::template vec_type< value_type > vec_type
The vectorization type for V.
Definition: adapter.hpp:33
order
Storage order of a matrix.
Definition: order.hpp:15
uni_lower_matrix(size_t dim) noexcept
Construct a new uni lower triangular matrix and fill it with zeros.
Definition: uni_lower.hpp:70
adapter< Matrix > base_type
The base type.
Definition: uni_lower.hpp:43
const value_type * const_memory_type
The const memory type.
Definition: adapter.hpp:27
value_t< matrix_t > value_type
The value type.
Definition: adapter.hpp:25
Traits to get information about ETL types.
Definition: tmp.hpp:68
Root namespace for the ETL library.
Definition: adapter.hpp:15
A uni lower triangular matrix adapter.
Definition: uni_lower.hpp:27
uni_lower_matrix() noexcept
Construct a new uni lower triangular matrix and fill it with zeros.
Definition: uni_lower.hpp:59
bool is_uni_lower_triangular(E &&expr)
Indicates if the given expression is a uni lower triangular matrix or not.
Definition: adapters.hpp:153
static constexpr size_t dimensions()
Return the number of dimensions of the expression.
Definition: traits_base.hpp:31
auto dim(E &&value, size_t i) -> detail::identity_helper< E, dim_view< detail::build_identity_type< E >, D >>
Return a view representing the ith Dth dimension.
Definition: view_expression_builder.hpp:25
value_type * memory_type
The memory type.
Definition: adapter.hpp:26
A base class for adapters.
Definition: adapter.hpp:21
matrix_t value
The adapted matrix.
Definition: adapter.hpp:36
uni_lower_detail::uni_lower_reference< matrix_t > operator()(size_t i, size_t j) noexcept
Access the (i, j) element of the 2D matrix.
Definition: uni_lower.hpp:234
matrix_t expr_t
The wrapped expression type.
Definition: adapter.hpp:23
Contains uni lower triangular matrix exception implementation.
etl::iterator< const this_type > const_iterator
The const iterator type.
Definition: dyn_matrix_view.hpp:37
uni_lower_matrix & operator>>=(const R &rhs)
Multiply each element by the value of the elements in the right hand side expression.
Definition: uni_lower.hpp:198
typename matrix_t::const_iterator iterator
The type of const iterator.
Definition: uni_lower.hpp:40
static constexpr size_t n_dimensions
The number of dimensions.
Definition: uni_lower.hpp:32
A proxy representing a reference to a mutable element of a uni lower triangular matrix.
Definition: uni_lower_reference.hpp:24
typename matrix_t::const_iterator const_iterator
The type of const iterator.
Definition: uni_lower.hpp:41
typename decay_traits< E >::value_type value_t
Traits to extract the value type out of an ETL type.
Definition: tmp.hpp:81
static constexpr order storage_order
The storage order.
Definition: uni_lower.hpp:33
uni_lower_matrix & operator=(E &&e) noexcept(false)
Assign the values of the ETL expression to the uni lower triangular matrix.
Definition: uni_lower.hpp:109
Traits for wrapper expressions.
Definition: wrapper_traits.hpp:21
Matrix matrix_t
The adapted matrix type.
Definition: adapter.hpp:22
Matrix matrix_t
The adapted matrix type.
Definition: uni_lower.hpp:28