CUSP
Loading...
Searching...
No Matches
lapack.h
Go to the documentation of this file.
1/*
2 * Copyright 2008-2009 NVIDIA Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
21#pragma once
22
23#include <cusp/detail/config.h>
24
25#include <cusp/lapack/detail/defs.h>
26
27namespace cusp
28{
29namespace lapack
30{
31
41template<typename DerivedPolicy,
42 typename Array2d,
43 typename Array1d>
44void getrf(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
45 Array2d& A,
46 Array1d& piv);
93template<typename Array2d,
94 typename Array1d>
95void getrf(Array2d& A,
96 Array1d& piv);
97
99template<typename DerivedPolicy,
100 typename Array2d>
101void potrf(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
102 Array2d& A,
103 char uplo = 'U');
148template<typename Array2d>
149void potrf(Array2d& A,
150 char uplo = 'U');
151
153template<typename DerivedPolicy,
154 typename Array2d,
155 typename Array1d>
156void sytrf(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
157 Array2d& A,
158 Array1d& piv,
159 char uplo = 'U');
212template<typename Array2d,
213 typename Array1d>
214void sytrf(Array2d& A,
215 Array1d& piv,
216 char uplo = 'U');
217
219template<typename DerivedPolicy,
220 typename Array2d,
221 typename Array1d>
222void getrs(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
223 const Array2d& A,
224 const Array1d& piv,
225 Array2d& B,
226 char trans = 'N');
283template<typename Array2d,
284 typename Array1d>
285void getrs(const Array2d& A,
286 const Array1d& piv,
287 Array2d& B,
288 char trans = 'N');
289
291template<typename DerivedPolicy,
292 typename Array2d>
293void potrs(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
294 const Array2d& A,
295 Array2d& B,
296 char uplo = 'N');
358template<typename Array2d>
359void potrs(const Array2d& A,
360 Array2d& B,
361 char uplo = 'U');
362
364template<typename DerivedPolicy,
365 typename Array2d,
366 typename Array1d>
367void sytrs(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
368 const Array2d& A,
369 const Array1d& piv,
370 Array2d& B,
371 char uplo = 'N');
436template<typename Array2d,
437 typename Array1d>
438void sytrs(const Array2d& A,
439 const Array1d& piv,
440 Array2d& B,
441 char uplo = 'U');
442
444template<typename DerivedPolicy,
445 typename Array2d>
446void trtrs(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
447 const Array2d& A,
448 Array2d& B,
449 char uplo = 'U',
450 char trans = 'N',
451 char diag = 'N');
504template<typename Array2d>
505void trtrs(const Array2d& A,
506 Array2d& B,
507 char uplo = 'U',
508 char trans = 'N',
509 char diag = 'N');
510
512template<typename DerivedPolicy,
513 typename Array2d>
514void trtri(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
515 Array2d& A,
516 char uplo = 'U',
517 char diag = 'N');
553template<typename Array2d>
554void trtri(Array2d& A,
555 char uplo = 'U',
556 char diag = 'N');
557
559template<typename DerivedPolicy,
560 typename Array2d,
561 typename Array1d>
562void syev(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
563 const Array2d& A,
564 Array1d& eigvals,
565 Array2d& eigvecs,
566 char uplo = 'U');
613template<typename Array2d,
614 typename Array1d>
615void syev(const Array2d& A,
616 Array1d& eigvals,
617 Array2d& eigvecs,
618 char uplo = 'U');
619
621template<typename DerivedPolicy,
622 typename Array1d1,
623 typename Array1d2,
624 typename Array1d3,
625 typename Array2d>
626void stev(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
627 const Array1d1& alphas,
628 const Array1d2& betas,
629 Array1d3& eigvals,
630 Array2d& eigvecs,
631 char job = 'V');
680template<typename Array1d1,
681 typename Array1d2,
682 typename Array1d3,
683 typename Array2d>
684void stev(const Array1d1& alphas,
685 const Array1d2& betas,
686 Array1d3& eigvals,
687 Array2d& eigvecs,
688 char job = 'V');
689
691template<typename DerivedPolicy,
692 typename Array2d1,
693 typename Array2d2,
694 typename Array1d,
695 typename Array2d3>
696void sygv(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
697 const Array2d1& A,
698 const Array2d2& B,
699 Array1d& eigvals,
700 Array2d3& eigvecs);
753template<typename Array2d1,
754 typename Array2d2,
755 typename Array1d,
756 typename Array2d3>
757void sygv(const Array2d1& A,
758 const Array2d2& B,
759 Array1d& eigvals,
760 Array2d3& eigvecs);
761
763template<typename DerivedPolicy,
764 typename Array2d,
765 typename Array1d>
766void gesv(const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
767 const Array2d& A,
768 Array2d& B,
769 Array1d& piv);
822template<typename Array2d,
823 typename Array1d>
824void gesv(const Array2d& A,
825 Array2d& B,
826 Array1d& piv);
827
831} // end namespace lapack
832} // end namespace cusp
833
834#include <cusp/lapack/detail/lapack.inl>
void potrf(Array2d &A, char uplo='U')
Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite matrix.
void sytrs(const Array2d &A, const Array1d &piv, Array2d &B, char uplo='U')
Solves a system of linear equations with a UDU- or LDL-factored symmetric matrix.
void stev(const Array1d1 &alphas, const Array1d2 &betas, Array1d3 &eigvals, Array2d &eigvecs, char job='V')
Computes all eigenvalues and, optionally, eigenvectors of a real symmetric tridiagonal matrix.
void sygv(const Array2d1 &A, const Array2d2 &B, Array1d &eigvals, Array2d3 &eigvecs)
Computes all eigenvalues and, optionally, eigenvectors of a real generalized symmetric definite eigen...
void getrs(const Array2d &A, const Array1d &piv, Array2d &B, char trans='N')
Solves a system of linear equations with an LU-factored square matrix, with multiple right-hand sides...
void syev(const Array2d &A, Array1d &eigvals, Array2d &eigvecs, char uplo='U')
Computes all eigenvalues and eigenvectors of a real symmetric matrix.
void gesv(const Array2d &A, Array2d &B, Array1d &piv)
Computes the solution of a system of linear equations with a square matrix A and multiple right-hand ...
void trtrs(const Array2d &A, Array2d &B, char uplo='U', char trans='N', char diag='N')
Solves a system of linear equations with a triangular matrix, with multiple right-hand sides.
void potrs(const Array2d &A, Array2d &B, char uplo='U')
Solves a system of linear equations with a Cholesky-factored symmetric (Hermitian) positive-definite ...
void sytrf(Array2d &A, Array1d &piv, char uplo='U')
Computes the Bunch-Kaufman factorization of a symmetric matrix.
void getrf(Array2d &A, Array1d &piv)
Compute LU factorization of matrix.
void trtri(Array2d &A, char uplo='U', char diag='N')
This routine computes the inverse of a triangular matrix.