Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Matrix.h
1/*
2 * Copyright 2020 IFPEN-CEA
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 * SPDX-License-Identifier: Apache-2.0
17 */
18
19#pragma once
20
22#include <alien/ref/AlienRefSemanticPrecomp.h>
23
24#include <alien/data/IMatrix.h>
25#include <alien/data/Space.h>
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Alien
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class ALIEN_REFSEMANTIC_EXPORT Matrix final : public IMatrix
37{
38 public:
39 Matrix();
40
41 Matrix(const MatrixDistribution& dist);
42
43 Matrix(Integer nrows, Integer ncols, Integer nrows_local,
44 IMessagePassingMng* parallel_mng);
45
46 Matrix(Integer nrows, Integer ncols, IMessagePassingMng* parallel_mng);
47
48 Matrix(Matrix&& m);
49
50 ~Matrix();
51
52 Matrix& operator=(Matrix&& m);
53
54 Matrix(const Matrix&) = delete;
55 Matrix& operator=(const Matrix&) = delete;
56
57 template <typename E>
58 Matrix& operator=(const E&);
59
60 public:
61 // Pour les expressions
62 void visit(ICopyOnWriteMatrix&) const;
63
64 const MatrixDistribution& distribution() const;
65
66 const ISpace& rowSpace() const;
67 const ISpace& colSpace() const;
68
69 void setUserFeature(String feature);
70
71 bool hasUserFeature(String feature) const;
72
73 public:
75
76 const MultiMatrixImpl* impl() const;
77
78 private:
79 std::shared_ptr<MultiMatrixImpl> m_impl;
80};
81
82/*---------------------------------------------------------------------------*/
83/*---------------------------------------------------------------------------*/
84
85} // namespace Alien
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
IMatrix.h.
MatrixDistribution.h.
Space.h.
IMatrix()
Constructor.
Definition IMatrix.h:54
Interface for algebraic space objects.
Definition ISpace.h:44
Computes a matrix distribution.
const ISpace & colSpace() const
Get col space associated to the matrix.
Definition Matrix.cc:108
void visit(ICopyOnWriteMatrix &) const
Visit method.
Definition Matrix.cc:84
const ISpace & rowSpace() const
Get row space associated to the matrix.
Definition Matrix.cc:100
MultiMatrixImpl * impl()
Get the multimatrix implementation.
Definition Matrix.cc:130
Multi matrices representation container.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition BackEnd.h:17