From ac29d3cce7d445c9e59a32552e20bf408428585a Mon Sep 17 00:00:00 2001 From: Doc CI Action Date: Wed, 19 Jul 2023 13:13:31 +0000 Subject: [PATCH] Doc Refactor `RetiledMatrix` into `Matrix` (#935) --- master/annotated.html | 11 +- master/auxiliary_2norm_2mc_8h_source.html | 2 +- master/band__to__tridiag_8h.html | 8 +- master/band__to__tridiag_8h_source.html | 108 +- master/bt__band__to__tridiag_8h_source.html | 79 +- master/bt__reduction__to__band_8h.html | 12 +- master/bt__reduction__to__band_8h_source.html | 96 +- master/cholesky_8h.html | 4 + master/cholesky_8h_source.html | 58 +- ...lassdlaf_1_1matrix_1_1_matrix-members.html | 7 +- master/classdlaf_1_1matrix_1_1_matrix.html | 67 +- ...x_3_01const_01_t_00_01_d_01_4-members.html | 57 +- ..._1_matrix_3_01const_01_t_00_01_d_01_4.html | 137 +- ..._1_1matrix_1_1_retiled_matrix-members.html | 116 - ...lassdlaf_1_1matrix_1_1_retiled_matrix.html | 421 --- ...classdlaf_1_1matrix_1_1_retiled_matrix.png | Bin 775 -> 0 bytes ...1_1matrix_1_1internal_1_1_matrix_base.html | 3 +- ..._1_1matrix_1_1internal_1_1_matrix_base.png | Bin 1114 -> 781 bytes master/classes.html | 2 +- master/copy_8h_source.html | 2 +- .../dir_21834082df7a318c018c9cc963be86ec.html | 2 - ...bt__band__to__tridiag_2impl_8h_source.html | 1929 ++++++------ .../eigensolver_2eigensolver_8h_source.html | 96 +- ..._2reduction__to__band_2impl_8h_source.html | 2697 ++++++++--------- master/files.html | 7 +- master/functions_d.html | 3 + master/functions_func_d.html | 3 + master/functions_func_r.html | 9 +- master/functions_func_s.html | 6 + master/functions_func_w.html | 1 - master/functions_r.html | 9 +- master/functions_s.html | 6 + master/functions_w.html | 1 - master/gen__eigensolver_8h_source.html | 154 +- master/gen__to__std_8h.html | 4 + master/gen__to__std_8h_source.html | 102 +- master/hermitian_8h.html | 4 + master/hermitian_8h_source.html | 134 +- master/hierarchy.html | 1 - master/matrix_8h.html | 1 + master/matrix_8h_source.html | 526 ++-- master/multiplication_2general_8h.html | 4 + master/multiplication_2general_8h_source.html | 164 +- master/multiplication_2triangular_8h.html | 4 + .../multiplication_2triangular_8h_source.html | 208 +- master/norm_8h.html | 4 +- master/norm_8h_source.html | 74 +- master/panel_8h_source.html | 2 +- ...permutations_2general_2impl_8h_source.html | 4 +- master/permutations_2general_8h_source.html | 94 +- master/print__csv_8h_source.html | 4 +- master/reduction__to__band_8h.html | 4 + master/reduction__to__band_8h_source.html | 58 +- master/retiled__matrix_8h.html | 105 - master/retiled__matrix_8h_source.html | 260 -- master/rot_8h_source.html | 2 +- master/search/all_10.js | 62 +- master/search/all_11.js | 133 +- master/search/all_12.js | 104 +- master/search/all_13.js | 48 +- master/search/all_14.js | 14 +- master/search/all_15.js | 8 +- master/search/all_16.js | 12 +- master/search/all_3.js | 13 +- master/search/all_4.js | 32 +- master/search/all_5.js | 14 +- master/search/all_6.js | 56 +- master/search/all_7.js | 36 +- master/search/all_8.js | 62 +- master/search/all_9.js | 2 +- master/search/all_a.js | 32 +- master/search/all_b.js | 76 +- master/search/all_c.js | 22 +- master/search/all_d.js | 28 +- master/search/all_e.js | 56 +- master/search/all_f.js | 6 +- master/search/classes_0.js | 20 +- master/search/classes_1.js | 14 +- master/search/classes_10.js | 40 +- master/search/classes_11.js | 32 +- master/search/classes_12.js | 8 +- master/search/classes_13.js | 6 +- master/search/classes_2.js | 60 +- master/search/classes_3.js | 32 +- master/search/classes_4.js | 6 +- master/search/classes_5.js | 2 +- master/search/classes_6.js | 14 +- master/search/classes_7.js | 24 +- master/search/classes_8.js | 30 +- master/search/classes_9.js | 2 +- master/search/classes_a.js | 42 +- master/search/classes_b.js | 10 +- master/search/classes_c.js | 30 +- master/search/classes_d.js | 4 +- master/search/classes_e.js | 7 +- master/search/classes_f.js | 42 +- master/search/defines_0.js | 2 +- master/search/defines_1.js | 2 +- master/search/enums_0.js | 2 +- master/search/files_0.js | 4 +- master/search/files_1.js | 12 +- master/search/files_10.js | 10 +- master/search/files_11.js | 18 +- master/search/files_12.js | 14 +- master/search/files_13.js | 4 +- master/search/files_2.js | 12 +- master/search/files_3.js | 8 +- master/search/files_4.js | 6 +- master/search/files_5.js | 6 +- master/search/files_6.js | 6 +- master/search/files_7.js | 2 +- master/search/files_8.js | 6 +- master/search/files_9.js | 2 +- master/search/files_a.js | 2 +- master/search/files_b.js | 12 +- master/search/files_c.js | 2 +- master/search/files_d.js | 14 +- master/search/files_e.js | 2 +- master/search/files_f.js | 11 +- master/search/functions_0.js | 6 +- master/search/functions_1.js | 16 +- master/search/functions_10.js | 50 +- master/search/functions_11.js | 2 +- master/search/functions_12.js | 4 +- master/search/functions_13.js | 2 +- master/search/functions_14.js | 12 +- master/search/functions_2.js | 52 +- master/search/functions_3.js | 26 +- master/search/functions_4.js | 12 +- master/search/functions_5.js | 6 +- master/search/functions_6.js | 36 +- master/search/functions_7.js | 10 +- master/search/functions_8.js | 22 +- master/search/functions_9.js | 30 +- master/search/functions_a.js | 34 +- master/search/functions_b.js | 10 +- master/search/functions_c.js | 26 +- master/search/functions_d.js | 16 +- master/search/functions_e.js | 45 +- master/search/functions_f.js | 79 +- master/search/related_0.js | 2 +- master/search/related_1.js | 2 +- master/search/related_2.js | 2 +- master/search/typedefs_0.js | 4 +- master/search/typedefs_1.js | 4 +- master/search/typedefs_2.js | 2 +- master/search/variables_0.js | 2 +- master/search/variables_1.js | 4 +- master/search/variables_2.js | 6 +- master/search/variables_3.js | 4 +- master/search/variables_4.js | 2 +- master/search/variables_5.js | 4 +- master/solver_2triangular_8h.html | 4 + master/solver_2triangular_8h_source.html | 198 +- ..._g_p_563250733b77a55bd996211659d75e42.html | 4 +- ..._g_p_e566a066992e6980ee13cab3c8831bc5.html | 12 +- ..._m_c_9c17309f77611319159a292eeae019d5.html | 4 +- ..._m_c_f6049763c467d19a4a2bae31f1d19649.html | 12 +- master/tridiag__solver_8h.html | 16 +- master/tridiag__solver_8h_source.html | 116 +- master/util__matrix_8h.html | 5 + master/util__matrix_8h_source.html | 538 ++-- 162 files changed, 5097 insertions(+), 5622 deletions(-) delete mode 100644 master/classdlaf_1_1matrix_1_1_retiled_matrix-members.html delete mode 100644 master/classdlaf_1_1matrix_1_1_retiled_matrix.html delete mode 100644 master/classdlaf_1_1matrix_1_1_retiled_matrix.png delete mode 100644 master/retiled__matrix_8h.html delete mode 100644 master/retiled__matrix_8h_source.html diff --git a/master/annotated.html b/master/annotated.html index c1251c57db..2af7c85d4a 100644 --- a/master/annotated.html +++ b/master/annotated.html @@ -243,12 +243,11 @@  CPanel  CPanel< axis, const T, D, StoreTransposed::No >  CPanel< axis, const T, D, StoreTransposed::Yes > - CRetiledMatrix - CSubTileSpecContains the information to create a subtile - CTile - CTile< const T, D > - CSubMatrixView - CSubPanelView + CSubTileSpecContains the information to create a subtile + CTile + CTile< const T, D > + CSubMatrixView + CSubPanelView  Nmemory  CMemoryChunkThe class MemoryChunk represents a layer of abstraction over the underlying device memory  CMemoryView diff --git a/master/auxiliary_2norm_2mc_8h_source.html b/master/auxiliary_2norm_2mc_8h_source.html index 79617de5e1..1f1d7e2f98 100644 --- a/master/auxiliary_2norm_2mc_8h_source.html +++ b/master/auxiliary_2norm_2mc_8h_source.html @@ -219,7 +219,7 @@
148 }
149 }
Definition: policy.h:24
-
Definition: matrix.h:55
+
Definition: matrix.h:56
auto make_data(Data &&data) noexcept
Definition: data.h:78
diff --git a/master/band__to__tridiag_8h.html b/master/band__to__tridiag_8h.html index 1af7e6f608..0d57ca0f0e 100644 --- a/master/band__to__tridiag_8h.html +++ b/master/band__to__tridiag_8h.html @@ -151,7 +151,9 @@

23 namespace dlaf {
24 namespace eigensolver {
25 
-
73 template <Backend B, Device D, class T>
-
74 TridiagResult<T, Device::CPU> bandToTridiag(blas::Uplo uplo, SizeType band_size,
-
75  Matrix<const T, D>& mat_a) {
-
76  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
-
77  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
-
78  DLAF_ASSERT(mat_a.blockSize().rows() % band_size == 0, mat_a.blockSize().rows(), band_size);
-
79  DLAF_ASSERT(matrix::local_matrix(mat_a), mat_a);
-
80  DLAF_ASSERT(band_size >= 2, band_size);
-
81 
-
82  switch (uplo) {
-
83  case blas::Uplo::Lower:
-
84  return internal::BandToTridiag<B, D, T>::call_L(band_size, mat_a);
-
85  break;
-
86  case blas::Uplo::Upper:
-
87  DLAF_UNIMPLEMENTED(uplo);
-
88  break;
-
89  case blas::Uplo::General:
-
90  DLAF_UNIMPLEMENTED(uplo);
-
91  break;
-
92  }
-
93 
-
94  return DLAF_UNREACHABLE(TridiagResult<T, Device::CPU>);
-
95 }
-
96 
-
144 template <Backend backend, Device device, class T>
- -
146  SizeType band_size, Matrix<const T, device>& mat_a) {
-
147  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
-
148  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
-
149  DLAF_ASSERT(matrix::equal_process_grid(mat_a, grid), mat_a, grid);
-
150  DLAF_ASSERT(band_size >= 2, band_size);
-
151 
-
152  // If the grid contains only one rank force local implementation.
-
153  if (grid.size() == comm::Size2D(1, 1))
-
154  return bandToTridiag<backend, device, T>(uplo, band_size, mat_a);
+
74 template <Backend B, Device D, class T>
+
75 TridiagResult<T, Device::CPU> bandToTridiag(blas::Uplo uplo, SizeType band_size,
+
76  Matrix<const T, D>& mat_a) {
+
77  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
+
78  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
+
79  DLAF_ASSERT(mat_a.blockSize().rows() % band_size == 0, mat_a.blockSize().rows(), band_size);
+
80  DLAF_ASSERT(matrix::local_matrix(mat_a), mat_a);
+
81  DLAF_ASSERT(matrix::single_tile_per_block(mat_a), mat_a);
+
82  DLAF_ASSERT(band_size >= 2, band_size);
+
83 
+
84  switch (uplo) {
+
85  case blas::Uplo::Lower:
+
86  return internal::BandToTridiag<B, D, T>::call_L(band_size, mat_a);
+
87  break;
+
88  case blas::Uplo::Upper:
+
89  DLAF_UNIMPLEMENTED(uplo);
+
90  break;
+
91  case blas::Uplo::General:
+
92  DLAF_UNIMPLEMENTED(uplo);
+
93  break;
+
94  }
+
95 
+
96  return DLAF_UNREACHABLE(TridiagResult<T, Device::CPU>);
+
97 }
+
98 
+
147 template <Backend backend, Device device, class T>
+ +
149  SizeType band_size, Matrix<const T, device>& mat_a) {
+
150  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
+
151  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
+
152  DLAF_ASSERT(matrix::equal_process_grid(mat_a, grid), mat_a, grid);
+
153  DLAF_ASSERT(matrix::single_tile_per_block(mat_a), mat_a);
+
154  DLAF_ASSERT(band_size >= 2, band_size);
155 
-
156  switch (uplo) {
-
157  case blas::Uplo::Lower:
-
158  return internal::BandToTridiag<backend, device, T>::call_L(grid, band_size, mat_a);
-
159  break;
-
160  case blas::Uplo::Upper:
-
161  DLAF_UNIMPLEMENTED(uplo);
-
162  break;
-
163  case blas::Uplo::General:
-
164  DLAF_UNIMPLEMENTED(uplo);
-
165  break;
-
166  }
-
167 
-
168  return DLAF_UNREACHABLE(TridiagResult<T, Device::CPU>);
-
169 }
-
170 
-
171 }
-
172 }
-
TridiagResult< T, Device::CPU > bandToTridiag(blas::Uplo uplo, SizeType band_size, Matrix< const T, D > &mat_a)
Definition: band_to_tridiag.h:74
+
156  // If the grid contains only one rank force local implementation.
+
157  if (grid.size() == comm::Size2D(1, 1))
+
158  return bandToTridiag<backend, device, T>(uplo, band_size, mat_a);
+
159 
+
160  switch (uplo) {
+
161  case blas::Uplo::Lower:
+
162  return internal::BandToTridiag<backend, device, T>::call_L(grid, band_size, mat_a);
+
163  break;
+
164  case blas::Uplo::Upper:
+
165  DLAF_UNIMPLEMENTED(uplo);
+
166  break;
+
167  case blas::Uplo::General:
+
168  DLAF_UNIMPLEMENTED(uplo);
+
169  break;
+
170  }
+
171 
+
172  return DLAF_UNREACHABLE(TridiagResult<T, Device::CPU>);
+
173 }
+
174 
+
175 }
+
176 }
+
TridiagResult< T, Device::CPU > bandToTridiag(blas::Uplo uplo, SizeType band_size, Matrix< const T, D > &mat_a)
Definition: band_to_tridiag.h:75
Definition: communicator_grid.h:42
Size2D size() const noexcept
Return the number of rows in the grid.
Definition: communicator_grid.h:68
diff --git a/master/bt__band__to__tridiag_8h_source.html b/master/bt__band__to__tridiag_8h_source.html index b35d41624f..91c970c24f 100644 --- a/master/bt__band__to__tridiag_8h_source.html +++ b/master/bt__band__to__tridiag_8h_source.html @@ -121,43 +121,48 @@
51 // @pre band_size is a divisor of mat_hh.blockSize().cols()
52 // @pre mat_e is not distributed
53 // @pre mat_hh is not distributed
-
54 template <Backend B, Device D, class T>
-
55 void backTransformationBandToTridiag(const SizeType band_size, matrix::Matrix<T, D>& mat_e,
-
56  matrix::Matrix<const T, Device::CPU>& mat_hh) {
-
57  DLAF_ASSERT(matrix::local_matrix(mat_e), mat_e);
-
58  DLAF_ASSERT(matrix::local_matrix(mat_hh), mat_hh);
-
59 
-
60  DLAF_ASSERT(matrix::square_size(mat_hh), mat_hh);
-
61  DLAF_ASSERT(matrix::square_blocksize(mat_hh), mat_hh);
-
62 
-
63  DLAF_ASSERT(mat_hh.size().rows() == mat_e.size().rows(), mat_hh, mat_e);
-
64  DLAF_ASSERT(mat_hh.blockSize().rows() == mat_e.blockSize().rows(), mat_hh, mat_e);
-
65 
-
66  DLAF_ASSERT(band_size >= 2, band_size);
-
67  DLAF_ASSERT(mat_hh.blockSize().rows() % band_size == 0, mat_hh.blockSize(), band_size);
-
68 
-
69  internal::BackTransformationT2B<B, D, T>::call(band_size, mat_e, mat_hh);
-
70 }
-
71 
-
72 template <Backend B, Device D, class T>
-
73 void backTransformationBandToTridiag(comm::CommunicatorGrid grid, const SizeType band_size,
-
74  matrix::Matrix<T, D>& mat_e,
-
75  matrix::Matrix<const T, Device::CPU>& mat_hh) {
-
76  DLAF_ASSERT(matrix::equal_process_grid(mat_e, grid), mat_e, grid);
-
77  DLAF_ASSERT(matrix::equal_process_grid(mat_hh, grid), mat_hh, grid);
-
78 
-
79  DLAF_ASSERT(matrix::square_size(mat_hh), mat_hh);
-
80  DLAF_ASSERT(matrix::square_blocksize(mat_hh), mat_hh);
-
81 
-
82  DLAF_ASSERT(mat_hh.size().rows() == mat_e.size().rows(), mat_hh, mat_e);
-
83  DLAF_ASSERT(mat_hh.blockSize().rows() == mat_e.blockSize().rows(), mat_hh, mat_e);
-
84 
-
85  DLAF_ASSERT(band_size >= 2, band_size);
-
86  DLAF_ASSERT(mat_hh.blockSize().rows() % band_size == 0, mat_hh.blockSize(), band_size);
-
87 
-
88  internal::BackTransformationT2B<B, D, T>::call(grid, band_size, mat_e, mat_hh);
-
89 }
-
90 }
+
54 // @pre mat_e has equal tile and block sizes
+
55 // @pre mat_hh has equal tile and block sizes
+
56 template <Backend B, Device D, class T>
+
57 void backTransformationBandToTridiag(const SizeType band_size, matrix::Matrix<T, D>& mat_e,
+
58  matrix::Matrix<const T, Device::CPU>& mat_hh) {
+
59  DLAF_ASSERT(matrix::local_matrix(mat_e), mat_e);
+
60  DLAF_ASSERT(matrix::local_matrix(mat_hh), mat_hh);
+
61 
+
62  DLAF_ASSERT(matrix::square_size(mat_hh), mat_hh);
+
63  DLAF_ASSERT(matrix::square_blocksize(mat_hh), mat_hh);
+
64 
+
65  DLAF_ASSERT(mat_hh.size().rows() == mat_e.size().rows(), mat_hh, mat_e);
+
66  DLAF_ASSERT(mat_hh.blockSize().rows() == mat_e.blockSize().rows(), mat_hh, mat_e);
+
67 
+
68  DLAF_ASSERT(matrix::single_tile_per_block(mat_e), mat_e);
+
69  DLAF_ASSERT(matrix::single_tile_per_block(mat_hh), mat_hh);
+
70 
+
71  DLAF_ASSERT(band_size >= 2, band_size);
+
72  DLAF_ASSERT(mat_hh.blockSize().rows() % band_size == 0, mat_hh.blockSize(), band_size);
+
73 
+
74  internal::BackTransformationT2B<B, D, T>::call(band_size, mat_e, mat_hh);
+
75 }
+
76 
+
77 template <Backend B, Device D, class T>
+
78 void backTransformationBandToTridiag(comm::CommunicatorGrid grid, const SizeType band_size,
+
79  matrix::Matrix<T, D>& mat_e,
+
80  matrix::Matrix<const T, Device::CPU>& mat_hh) {
+
81  DLAF_ASSERT(matrix::equal_process_grid(mat_e, grid), mat_e, grid);
+
82  DLAF_ASSERT(matrix::equal_process_grid(mat_hh, grid), mat_hh, grid);
+
83 
+
84  DLAF_ASSERT(matrix::square_size(mat_hh), mat_hh);
+
85  DLAF_ASSERT(matrix::square_blocksize(mat_hh), mat_hh);
+
86 
+
87  DLAF_ASSERT(mat_hh.size().rows() == mat_e.size().rows(), mat_hh, mat_e);
+
88  DLAF_ASSERT(mat_hh.blockSize().rows() == mat_e.blockSize().rows(), mat_hh, mat_e);
+
89 
+
90  DLAF_ASSERT(band_size >= 2, band_size);
+
91  DLAF_ASSERT(mat_hh.blockSize().rows() % band_size == 0, mat_hh.blockSize(), band_size);
+
92 
+
93  internal::BackTransformationT2B<B, D, T>::call(grid, band_size, mat_e, mat_hh);
+
94 }
+
95 }
diff --git a/master/bt__reduction__to__band_8h.html b/master/bt__reduction__to__band_8h.html index a8331c8c60..c3dcbe081c 100644 --- a/master/bt__reduction__to__band_8h.html +++ b/master/bt__reduction__to__band_8h.html @@ -147,7 +147,11 @@

Precondition
mat_c is distributed,
-mat_v is distributed according to grid.
+mat_v is distributed according to grid, +
+mat_c has equal tile and block sizes,
+
+mat_v has equal tile and block sizes.
@@ -202,7 +206,11 @@

Precondition
mat_c is not distributed,
-mat_v is not distributed.
+mat_v is not distributed, +
+mat_c has equal tile and block sizes,
+
+mat_v has equal tile and block sizes.
diff --git a/master/bt__reduction__to__band_8h_source.html b/master/bt__reduction__to__band_8h_source.html index b5bca2d98a..23e2b5e049 100644 --- a/master/bt__reduction__to__band_8h_source.html +++ b/master/bt__reduction__to__band_8h_source.html @@ -92,52 +92,56 @@
22 namespace dlaf {
23 namespace eigensolver {
24 
-
38 template <Backend backend, Device device, class T>
-
39 void backTransformationReductionToBand(const SizeType b, Matrix<T, device>& mat_c,
-
40  Matrix<const T, device>& mat_v,
-
41  Matrix<const T, Device::CPU>& mat_taus) {
-
42  DLAF_ASSERT(matrix::local_matrix(mat_c), mat_c);
-
43  DLAF_ASSERT(matrix::local_matrix(mat_v), mat_v);
-
44  DLAF_ASSERT(square_size(mat_v), mat_v);
-
45  DLAF_ASSERT(square_blocksize(mat_v), mat_v);
-
46  DLAF_ASSERT(mat_c.size().rows() == mat_v.size().rows(), mat_c, mat_v);
-
47  DLAF_ASSERT(mat_c.blockSize().rows() == mat_v.blockSize().rows(), mat_c, mat_v);
-
48 
-
49  [[maybe_unused]] auto nr_reflectors_blocks = [&b, &mat_v]() {
-
50  const SizeType m = mat_v.size().rows();
-
51  const SizeType mb = mat_v.blockSize().rows();
-
52  return std::max<SizeType>(0, util::ceilDiv(m - b - 1, mb));
-
53  };
-
54  DLAF_ASSERT(mat_taus.nrTiles().rows() == nr_reflectors_blocks(), mat_taus.size().rows(), mat_v, b);
-
55 
- -
57 }
-
58 
-
72 template <Backend backend, Device device, class T>
- -
74  Matrix<T, device>& mat_c, Matrix<const T, device>& mat_v,
-
75  Matrix<const T, Device::CPU>& mat_taus) {
-
76  DLAF_ASSERT(matrix::equal_process_grid(mat_c, grid), mat_c, grid);
-
77  DLAF_ASSERT(matrix::equal_process_grid(mat_v, grid), mat_v, grid);
-
78  DLAF_ASSERT(square_size(mat_v), mat_v);
-
79  DLAF_ASSERT(square_blocksize(mat_v), mat_v);
-
80  DLAF_ASSERT(mat_c.size().rows() == mat_v.size().rows(), mat_c, mat_v);
-
81  DLAF_ASSERT(mat_c.blockSize().rows() == mat_v.blockSize().rows(), mat_c, mat_v);
-
82 
-
83  [[maybe_unused]] auto nr_reflectors_blocks = [&b, &mat_v]() {
-
84  const SizeType m = mat_v.size().rows();
-
85  const SizeType mb = mat_v.blockSize().rows();
-
86  return mat_v.distribution().template nextLocalTileFromGlobalTile<Coord::Col>(
-
87  std::max<SizeType>(0, util::ceilDiv(m - b - 1, mb)));
-
88  };
-
89  DLAF_ASSERT(mat_taus.distribution().localNrTiles().rows() == nr_reflectors_blocks(), mat_taus, mat_v,
-
90  b);
-
91 
- -
93 }
-
94 }
-
95 }
-
void backTransformationReductionToBand(const SizeType b, Matrix< T, device > &mat_c, Matrix< const T, device > &mat_v, Matrix< const T, Device::CPU > &mat_taus)
Definition: bt_reduction_to_band.h:39
+
40 template <Backend backend, Device device, class T>
+
41 void backTransformationReductionToBand(const SizeType b, Matrix<T, device>& mat_c,
+
42  Matrix<const T, device>& mat_v,
+
43  Matrix<const T, Device::CPU>& mat_taus) {
+
44  DLAF_ASSERT(matrix::local_matrix(mat_c), mat_c);
+
45  DLAF_ASSERT(matrix::local_matrix(mat_v), mat_v);
+
46  DLAF_ASSERT(square_size(mat_v), mat_v);
+
47  DLAF_ASSERT(square_blocksize(mat_v), mat_v);
+
48  DLAF_ASSERT(mat_c.size().rows() == mat_v.size().rows(), mat_c, mat_v);
+
49  DLAF_ASSERT(mat_c.blockSize().rows() == mat_v.blockSize().rows(), mat_c, mat_v);
+
50  DLAF_ASSERT(single_tile_per_block(mat_c), mat_c);
+
51  DLAF_ASSERT(single_tile_per_block(mat_v), mat_v);
+
52 
+
53  [[maybe_unused]] auto nr_reflectors_blocks = [&b, &mat_v]() {
+
54  const SizeType m = mat_v.size().rows();
+
55  const SizeType mb = mat_v.blockSize().rows();
+
56  return std::max<SizeType>(0, util::ceilDiv(m - b - 1, mb));
+
57  };
+
58  DLAF_ASSERT(mat_taus.nrTiles().rows() == nr_reflectors_blocks(), mat_taus.size().rows(), mat_v, b);
+
59 
+ +
61 }
+
62 
+
78 template <Backend backend, Device device, class T>
+ +
80  Matrix<T, device>& mat_c, Matrix<const T, device>& mat_v,
+
81  Matrix<const T, Device::CPU>& mat_taus) {
+
82  DLAF_ASSERT(matrix::equal_process_grid(mat_c, grid), mat_c, grid);
+
83  DLAF_ASSERT(matrix::equal_process_grid(mat_v, grid), mat_v, grid);
+
84  DLAF_ASSERT(square_size(mat_v), mat_v);
+
85  DLAF_ASSERT(square_blocksize(mat_v), mat_v);
+
86  DLAF_ASSERT(mat_c.size().rows() == mat_v.size().rows(), mat_c, mat_v);
+
87  DLAF_ASSERT(mat_c.blockSize().rows() == mat_v.blockSize().rows(), mat_c, mat_v);
+
88  DLAF_ASSERT(single_tile_per_block(mat_c), mat_c);
+
89  DLAF_ASSERT(single_tile_per_block(mat_v), mat_v);
+
90 
+
91  [[maybe_unused]] auto nr_reflectors_blocks = [&b, &mat_v]() {
+
92  const SizeType m = mat_v.size().rows();
+
93  const SizeType mb = mat_v.blockSize().rows();
+
94  return mat_v.distribution().template nextLocalTileFromGlobalTile<Coord::Col>(
+
95  std::max<SizeType>(0, util::ceilDiv(m - b - 1, mb)));
+
96  };
+
97  DLAF_ASSERT(mat_taus.distribution().localNrTiles().rows() == nr_reflectors_blocks(), mat_taus, mat_v,
+
98  b);
+
99 
+ +
101 }
+
102 }
+
103 }
+
void backTransformationReductionToBand(const SizeType b, Matrix< T, device > &mat_c, Matrix< const T, device > &mat_v, Matrix< const T, Device::CPU > &mat_taus)
Definition: bt_reduction_to_band.h:41
Definition: communicator_grid.h:42
void eigensolver(blas::Uplo uplo, Matrix< T, D > &mat, Matrix< BaseType< T >, D > &eigenvalues, Matrix< T, D > &eigenvectors)
Definition: eigensolver.h:39
diff --git a/master/cholesky_8h.html b/master/cholesky_8h.html index 95ccbbe5aa..762c1b99b7 100644 --- a/master/cholesky_8h.html +++ b/master/cholesky_8h.html @@ -129,6 +129,8 @@

22 namespace dlaf {
23 namespace factorization {
24 
-
38 template <Backend backend, Device device, class T>
-
39 void cholesky(blas::Uplo uplo, Matrix<T, device>& mat_a) {
-
40  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
-
41  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
-
42  DLAF_ASSERT(matrix::local_matrix(mat_a), mat_a);
-
43 
-
44  if (uplo == blas::Uplo::Lower)
- -
46  else
- -
48 }
-
49 
-
64 template <Backend backend, Device device, class T>
-
65 void cholesky(comm::CommunicatorGrid grid, blas::Uplo uplo, Matrix<T, device>& mat_a) {
-
66  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
-
67  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
-
68  DLAF_ASSERT(matrix::equal_process_grid(mat_a, grid), mat_a, grid);
-
69 
-
70  // Method only for Lower triangular matrix
-
71  if (uplo == blas::Uplo::Lower)
- -
73  else
- -
75 }
-
76 
-
77 }
-
78 }
-
void cholesky(blas::Uplo uplo, Matrix< T, device > &mat_a)
Definition: cholesky.h:39
+
39 template <Backend backend, Device device, class T>
+
40 void cholesky(blas::Uplo uplo, Matrix<T, device>& mat_a) {
+
41  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
+
42  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
+
43  DLAF_ASSERT(matrix::single_tile_per_block(mat_a), mat_a);
+
44  DLAF_ASSERT(matrix::local_matrix(mat_a), mat_a);
+
45 
+
46  if (uplo == blas::Uplo::Lower)
+ +
48  else
+ +
50 }
+
51 
+
67 template <Backend backend, Device device, class T>
+
68 void cholesky(comm::CommunicatorGrid grid, blas::Uplo uplo, Matrix<T, device>& mat_a) {
+
69  DLAF_ASSERT(matrix::square_size(mat_a), mat_a);
+
70  DLAF_ASSERT(matrix::square_blocksize(mat_a), mat_a);
+
71  DLAF_ASSERT(matrix::single_tile_per_block(mat_a), mat_a);
+
72  DLAF_ASSERT(matrix::equal_process_grid(mat_a, grid), mat_a, grid);
+
73 
+
74  // Method only for Lower triangular matrix
+
75  if (uplo == blas::Uplo::Lower)
+ +
77  else
+ +
79 }
+
80 
+
81 }
+
82 }
+
void cholesky(blas::Uplo uplo, Matrix< T, device > &mat_a)
Definition: cholesky.h:40
Definition: communicator_grid.h:42
diff --git a/master/classdlaf_1_1matrix_1_1_matrix-members.html b/master/classdlaf_1_1matrix_1_1_matrix-members.html index e060e8fb26..e0a473e6ad 100644 --- a/master/classdlaf_1_1matrix_1_1_matrix-members.html +++ b/master/classdlaf_1_1matrix_1_1_matrix-members.html @@ -89,9 +89,10 @@ readwrite(const LocalTileIndex &index) noexceptdlaf::matrix::Matrix< T, D >inline readwrite(const GlobalTileIndex &index) noexceptdlaf::matrix::Matrix< T, D >inline ReadWriteSenderType typedef (defined in dlaf::matrix::Matrix< T, D >)dlaf::matrix::Matrix< T, D > - subPipeline() (defined in dlaf::matrix::Matrix< T, D >)dlaf::matrix::Matrix< T, D >inline - TileDataType typedef (defined in dlaf::matrix::Matrix< T, D >)dlaf::matrix::Matrix< T, D > - TileType typedef (defined in dlaf::matrix::Matrix< T, D >)dlaf::matrix::Matrix< T, D > + retiledSubPipeline(const LocalTileSize &tiles_per_block)dlaf::matrix::Matrix< T, D >inline + subPipeline()dlaf::matrix::Matrix< T, D >inline + TileDataType typedef (defined in dlaf::matrix::Matrix< T, D >)dlaf::matrix::Matrix< T, D > + TileType typedef (defined in dlaf::matrix::Matrix< T, D >)dlaf::matrix::Matrix< T, D >