BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_Matrix.hpp
Go to the documentation of this file.
1
/*
2
* BELFEM -- The Berkeley Lab Finite Element Framework
3
* Copyright (c) 2026, The Regents of the University of California,
4
* through Lawrence Berkeley National Laboratory (subject to receipt of any required
5
* approvals from the U.S. Dept. of Energy). All rights reserved.
6
*
7
* Developers: Christian Messe, Gregory Giard
8
*
9
* See the top-level LICENSE file for the complete license and disclaimer.
10
*/
11
12
#ifndef BELFEM_CL_MATRIX_HPP
13
#define BELFEM_CL_MATRIX_HPP
14
15
/*
16
* The contract of belfem::Matrix with either backend:
17
*
18
* - Storage is column-major ( BLAS/LAPACK order ). Column j is contiguous
19
* and row i is strided, so an inner loop varies the row index.
20
* - data() returns the raw storage, which may include padding. spacing()
21
* is its inter-column stride: Blaze pads it for SIMD alignment,
22
* Armadillo does not.
23
* - Element access goes through A( i, j ). An offset computed by hand
24
* must use spacing(), never n_rows(). The length of a whole-matrix
25
* transfer ( BLAS, LAPACK, MPI ) is spacing() * n_cols(), never
26
* capacity().
27
* - data() of an empty matrix is well-defined and may be nullptr.
28
*/
29
30
#include "
cl_Vector.hpp
"
31
32
// include implementation
33
#ifdef BELFEM_ARMADILLO
34
#include "
cl_AR_Matrix.hpp
"
35
#include "
op_AR_MatrixEqualEqual.hpp
"
36
#elif BELFEM_BLAZE
37
#include "
cl_BZ_Matrix.hpp
"
38
#include "
op_BZ_MatrixEqualEqual.hpp
"
39
#endif
40
41
#include "
op_MatrixPlus.hpp
"
42
#include "
op_MatrixMinus.hpp
"
43
#include "
op_MatrixTimes.hpp
"
44
#endif
//BELFEM_CL_MATRIX_HPP
cl_AR_Matrix.hpp
cl_BZ_Matrix.hpp
cl_Vector.hpp
op_AR_MatrixEqualEqual.hpp
op_BZ_MatrixEqualEqual.hpp
op_MatrixMinus.hpp
op_MatrixPlus.hpp
op_MatrixTimes.hpp
src
linalg
cl_Matrix.hpp
Generated by
1.18.0