26 #ifndef TILEDARRAY_DENSE_SHAPE_H__INCLUDED 27 #define TILEDARRAY_DENSE_SHAPE_H__INCLUDED 38 namespace expressions {
74 template <
typename Index>
75 static constexpr
bool is_zero(
const Index&) {
return false; }
80 static constexpr
bool is_dense() {
return true; }
86 static constexpr
float sparsity() {
return 0.0f; }
92 static constexpr
bool empty() {
return false; }
98 template <
typename Index>
102 template <
typename Index>
105 template <
typename Index,
typename Scalar,
106 typename std::enable_if<detail::is_numeric<Scalar>::value>::type* =
nullptr>
110 template <
typename Index>
114 template <
typename Index,
typename Scalar>
120 template <
typename Scalar>
123 template <
typename Scalar>
130 template <
typename Scalar>
133 template <
typename Scalar>
136 template <
typename Scalar>
139 template <
typename Scalar>
146 template <
typename Scalar>
149 template <
typename Scalar>
152 template <
typename Scalar>
155 template <
typename Scalar>
162 template <
typename Scalar>
165 template <
typename Scalar>
168 template <
typename Scalar>
172 template <
typename Scalar>
183 #endif // TILEDARRAY_DENSE_SHAPE_H__INCLUDED static DenseShape block(const Index &, const Index &, const Scalar)
static DenseShape block(const Index &, const Index &, const Scalar, const Permutation &)
static DenseShape add(const DenseShape &, const Scalar)
constexpr bool operator==(const DenseShape &a, const DenseShape &b)
A (hyperrectangular) interval on , space of integer n-indices.
static DenseShape subt(const Scalar, const Permutation &)
static constexpr float sparsity()
Sparsity fraction.
static DenseShape mult(const DenseShape &)
static DenseShape subt(const Scalar)
static DenseShape mult(const DenseShape &, const Permutation &)
static DenseShape add(const Scalar)
static DenseShape update_block(const Index &, const Index &, const DenseShape &)
static DenseShape subt(const DenseShape &)
static DenseShape gemm(const DenseShape &, const Scalar, const math::GemmHelper &)
static DenseShape mult(const DenseShape &, const Scalar, const Permutation &)
static DenseShape subt(const DenseShape &, const Scalar)
constexpr bool operator!=(const DenseShape &a, const DenseShape &b)
static DenseShape block(const Index &, const Index &)
DenseShape mask(const DenseShape &) const
static DenseShape subt(const DenseShape &, const Scalar, const Permutation &)
static DenseShape add(const DenseShape &, const Scalar, const Permutation &)
static DenseShape perm(const Permutation &)
static constexpr bool is_dense()
Check density.
static DenseShape scale(const Scalar, const Permutation &)
Variable list manages a list variable strings.
static DenseShape add(const Scalar, const Permutation &)
static DenseShape mult(const DenseShape &, const Scalar)
static DenseShape subt(const DenseShape &, const Permutation &)
static constexpr bool validate(const Range &)
Validate shape range.
Contraction to *GEMM helper.
Permutation of a sequence of objects indexed by base-0 indices.
static void collective_init(World &)
Collective initialization of a shape.
static constexpr bool empty()
Check if the shape is empty (uninitialized)
static DenseShape gemm(const DenseShape &, const Scalar, const math::GemmHelper &, const Permutation &)
static DenseShape add(const DenseShape &, const Permutation &)
static constexpr bool is_zero(const Index &)
Check that a tile is zero.
static DenseShape add(const DenseShape &)
static DenseShape block(const Index &, const Index &, const Permutation &)
static DenseShape scale(const Scalar)