54#if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
55 public ConvertibleTo<Ell<next_precision<ValueType, 2>, IndexType>>,
57#if GINKGO_ENABLE_HALF && GINKGO_ENABLE_BFLOAT16
58 public ConvertibleTo<Ell<next_precision<ValueType, 3>, IndexType>>,
60 public ConvertibleTo<Ell<next_precision<ValueType>, IndexType>> {
62 friend class Ell<
to_complex<ValueType>, IndexType>;
64 GKO_ASSERT_SUPPORTED_VALUE_TYPE;
65 static_assert(std::is_same<IndexType, int32>::value,
66 "IndexType must be a 32 bit integer");
72 using value_type = ValueType;
73 using index_type = IndexType;
83#if GINKGO_ENABLE_HALF || GINKGO_ENABLE_BFLOAT16
86 Ell<next_precision<ValueType, 2>, IndexType>>::convert_to;
87 using ConvertibleTo<Ell<next_precision<ValueType, 2>, IndexType>>::move_to;
95#if GINKGO_ENABLE_HALF && GINKGO_ENABLE_BFLOAT16
98 Ell<next_precision<ValueType, 3>, IndexType>>::convert_to;
99 using ConvertibleTo<Ell<next_precision<ValueType, 3>, IndexType>>::move_to;
130 value_type*
get_values() noexcept {
return values_.get_data(); }
141 return values_.get_const_data();
160 return col_idxs_.get_const_data();
171 return num_elems_per_row_;
183 return values_.get_size();
206 GKO_ASSERT(batch_id < this->get_num_batch_items());
207 return col_idxs_.get_data();
220 GKO_ASSERT(batch_id < this->get_num_batch_items());
221 return col_idxs_.get_const_data();
234 GKO_ASSERT(batch_id < this->get_num_batch_items());
235 return values_.get_data() +
249 GKO_ASSERT(batch_id < this->get_num_batch_items());
250 return values_.get_const_data() +