imate
C++/CUDA Reference
c_golub_kahn_bidiagonalization.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_GOLUB_KAHN_BIDIAGONALIZATION_H_
13 #define _C_TRACE_ESTIMATOR_C_GOLUB_KAHN_BIDIAGONALIZATION_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 // golub kahn bidiagonalization
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_GOLUB_KAHN_BIDIAGONALIZATION_H_
IndexType c_golub_kahn_bidiagonalization(cLinearOperator< DataType > *A, const DataType *v, const LongIndexType n, const IndexType m, const DataType lanczos_tol, const FlagType orthogonalize, DataType *alpha, DataType *beta)
Bi-diagonalizes the positive-definite matrix A using Golub-Kahn-Lanczos method.
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