66
77namespace hsolver
88{
9-
9+ // hegvd and sygvd; dn for dense?
1010template <typename T>
11- struct dngvd_op <T, base_device::DEVICE_CPU>
11+ struct hegvd_op <T, base_device::DEVICE_CPU>
1212{
1313 using Real = typename GetTypeReal<T>::type;
1414 void operator ()(const base_device::DEVICE_CPU* d,
@@ -83,7 +83,7 @@ struct dngvd_op<T, base_device::DEVICE_CPU>
8383};
8484
8585template <typename T>
86- struct dngv_op <T, base_device::DEVICE_CPU>
86+ struct hegv_op <T, base_device::DEVICE_CPU>
8787{
8888 using Real = typename GetTypeReal<T>::type;
8989 void operator ()(const base_device::DEVICE_CPU* d,
@@ -139,8 +139,16 @@ struct dngv_op<T, base_device::DEVICE_CPU>
139139 }
140140};
141141
142+ // heevx and syevx
143+ /* *
144+ * @brief heevx computes the first m eigenvalues and their corresponding eigenvectors of
145+ * a complex generalized Hermitian-definite eigenproblem.
146+ *
147+ * both heevx and syevx are implemented through the `evx` interface of LAPACK.
148+ * wrapped in LapackWrapper::xheevx
149+ */
142150template <typename T>
143- struct dnevx_op <T, base_device::DEVICE_CPU>
151+ struct heevx_op <T, base_device::DEVICE_CPU>
144152{
145153 using Real = typename GetTypeReal<T>::type;
146154 void operator ()(const base_device::DEVICE_CPU* /* ctx*/ ,
@@ -235,7 +243,7 @@ struct dnevx_op<T, base_device::DEVICE_CPU>
235243};
236244
237245template <typename T>
238- struct dngvx_op <T, base_device::DEVICE_CPU>
246+ struct hegvx_op <T, base_device::DEVICE_CPU>
239247{
240248 using Real = typename GetTypeReal<T>::type;
241249 void operator ()(const base_device::DEVICE_CPU* d,
@@ -321,21 +329,21 @@ struct dngvx_op<T, base_device::DEVICE_CPU>
321329 }
322330};
323331
324- template struct dngvd_op <std::complex <float >, base_device::DEVICE_CPU>;
325- template struct dngvd_op <std::complex <double >, base_device::DEVICE_CPU>;
332+ template struct hegvd_op <std::complex <float >, base_device::DEVICE_CPU>;
333+ template struct hegvd_op <std::complex <double >, base_device::DEVICE_CPU>;
326334
327- template struct dnevx_op <std::complex <float >, base_device::DEVICE_CPU>;
328- template struct dnevx_op <std::complex <double >, base_device::DEVICE_CPU>;
335+ template struct heevx_op <std::complex <float >, base_device::DEVICE_CPU>;
336+ template struct heevx_op <std::complex <double >, base_device::DEVICE_CPU>;
329337
330- template struct dngvx_op <std::complex <float >, base_device::DEVICE_CPU>;
331- template struct dngvx_op <std::complex <double >, base_device::DEVICE_CPU>;
338+ template struct hegvx_op <std::complex <float >, base_device::DEVICE_CPU>;
339+ template struct hegvx_op <std::complex <double >, base_device::DEVICE_CPU>;
332340
333- template struct dngv_op <std::complex <float >, base_device::DEVICE_CPU>;
334- template struct dngv_op <std::complex <double >, base_device::DEVICE_CPU>;
341+ template struct hegv_op <std::complex <float >, base_device::DEVICE_CPU>;
342+ template struct hegv_op <std::complex <double >, base_device::DEVICE_CPU>;
335343#ifdef __LCAO
336- template struct dngvd_op <double , base_device::DEVICE_CPU>;
337- template struct dnevx_op <double , base_device::DEVICE_CPU>;
338- template struct dngvx_op <double , base_device::DEVICE_CPU>;
339- template struct dngv_op <double , base_device::DEVICE_CPU>;
344+ template struct hegvd_op <double , base_device::DEVICE_CPU>;
345+ template struct heevx_op <double , base_device::DEVICE_CPU>;
346+ template struct hegvx_op <double , base_device::DEVICE_CPU>;
347+ template struct hegv_op <double , base_device::DEVICE_CPU>;
340348#endif
341349} // namespace hsolver
0 commit comments