imate
C++/CUDA Reference
c_lanczos_tridiagonalization.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright 2021, Siavash Ameli <sameli@berkeley.edu>
3  * SPDX-License-Identifier: BSD-3-Clause
4  * SPDX-FileType: SOURCE
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the license found in the LICENSE.txt file in the root
8  * directory of this source tree.
9  */
10 
11 
12 #ifndef _C_TRACE_ESTIMATOR_C_LANCZOS_TRIDIAGONALIZATION_H_
13 #define _C_TRACE_ESTIMATOR_C_LANCZOS_TRIDIAGONALIZATION_H_
14 
15 // =======
16 // Headers
17 // =======
18 
19 #include "../_c_linear_operator/c_linear_operator.h" // cLinearOperator
20 #include "../_definitions/types.h" // IndexType, LongIndexType, FlagType
21 
22 
23 // ============
24 // Declarations
25 // ============
26 
27 // lanczos tridiagonalization
28 template <typename DataType>
31  const DataType* v,
32  const LongIndexType n,
33  const IndexType m,
34  const DataType lanczos_tol,
35  const FlagType orthogonalize,
36  DataType* alpha,
37  DataType* beta);
38 
39 #endif // _C_TRACE_ESTIMATOR_C_LANCZOS_TRIDIAGONALIZATION_H_
IndexType c_lanczos_tridiagonalization(cLinearOperator< DataType > *A, const DataType *v, const LongIndexType n, const IndexType m, const DataType lanczos_tol, const FlagType orthogonalize, DataType *alpha, DataType *beta)
Tri-diagonalizes matrix A to T using the start vector v. is the Lanczos degree, which will be the siz...
Base class for linear operators. This class serves as interface for all derived classes.
int LongIndexType
Definition: types.h:60
int FlagType
Definition: types.h:68
int IndexType
Definition: types.h:65