19#include "MatrixData.h"
26#include <alien/utils/ICopyOnWriteObject.h>
34using namespace Arccore;
48 std::make_shared<
Space>(space), std::make_shared<
Space>(space), dist.clone()))
56 std::make_shared<
Space>(row_space), std::make_shared<
Space>(col_space), dist.clone()))
63 std::make_shared<
Space>(size), std::make_shared<
Space>(size), dist.clone()))
70 std::make_shared<
Space>(row_size), std::make_shared<
Space>(col_size), dist.clone()))
77 dist.colDistribution().space().clone(), dist.clone()))
83: m_impl(std::move(matrix.m_impl))
90 m_impl = std::move(matrix.m_impl);
99 std::make_shared<Space>(space), std::make_shared<Space>(space), dist.
clone()));
105MatrixData::block()
const
107 return m_impl->block();
113MatrixData::vblock()
const
115 return m_impl->vblock();
120void MatrixData::setBlockInfos(
const Integer block_size)
122 m_impl->setBlockInfos(block_size);
127void MatrixData::setBlockInfos(
const Block* block)
130 m_impl->setBlockInfos(block);
136void MatrixData::setBlockInfos(
const VBlock* block)
139 m_impl->setBlockInfos(block);
169 return m_impl->rowSpace();
177 return m_impl->colSpace();
185 return m_impl->distribution();
192 m_impl->setFeature(feature);
199 return m_impl->hasFeature(feature);
206 return m_impl->hasFeature(
"composite");
232MatrixData::clone()
const
235 out.m_impl.reset(m_impl->clone());
Block elements for block matrices.
Interface for algebraic space objects.
Computes a matrix distribution.
std::shared_ptr< MatrixDistribution > clone() const
Clone the distribution.
Algebraic Matrix with internal multi-representation object.
Multi matrices representation container.
const AlgebraTraits< tag >::matrix_type & get() const
Get a specific matrix implementation.
Implementation of an algebraic space.
Variable size block elements for block matrices.
void visit(ICopyOnWriteMatrix &) const
void init(const Space &space, const MatrixDistribution &dist)
MatrixData & operator=(MatrixData &&matrix)
Move from Matrix.
MultiMatrixImpl * impl()
Get the multimatrix implementation.
friend MatrixData createMatrixData(std::shared_ptr< MultiMatrixImpl > multi)
void setUserFeature(String feature)
bool hasUserFeature(String feature) const
const MatrixDistribution & distribution() const
const ISpace & rowSpace() const
const ISpace & colSpace() const