43#ifndef RTOPPACK_LAPACK_WRAPPERS_HPP
44#define RTOPPACK_LAPACK_WRAPPERS_HPP
48#include "Teuchos_LAPACK.hpp"
49#include "Teuchos_as.hpp"
62extern const Teuchos::Tuple<char,NUM_ETRANS_ARGS>
transpMap;
78 const ArrayView<int> &ipiv,
87 const ArrayView<const int> &ipiv,
101template<
class Scalar>
104 const ArrayView<int> &ipiv,
111 TEUCHOS_TEST_FOR_EXCEPT( A.
subDim() == 0 );
112 TEUCHOS_TEST_FOR_EXCEPT( A.
numSubCols() == 0 );
113 TEUCHOS_TEST_FOR_EXCEPT( is_null(A.
values()) );
114 TEUCHOS_ASSERT_EQUALITY( as<int>(ipiv.size()), maxRank );
117 Teuchos::LAPACK<int, Scalar> lapack;
122 TEUCHOS_TEST_FOR_EXCEPTION(
123 info < 0, std::invalid_argument
124 ,
"getrf(...): Error, Invalid argument "
125 << -info <<
" sent to LAPACK function xGETRF(...)" );
131template<
class Scalar>
134 const ArrayView<const int> &ipiv,
141 TEUCHOS_ASSERT( !is_null(BX) );
142 TEUCHOS_ASSERT_EQUALITY( A.
subDim(), BX->subDim() );
144 TEUCHOS_TEST_FOR_EXCEPT( A.
subDim() == 0 );
145 TEUCHOS_TEST_FOR_EXCEPT( A.
numSubCols() == 0 );
146 TEUCHOS_TEST_FOR_EXCEPT( is_null(A.
values()) );
147 TEUCHOS_ASSERT_EQUALITY( A.
subDim(), ipiv.size() );
149 Teuchos::LAPACK<int, Scalar> lapack;
154 &ipiv[0], BX->values().get(), BX->leadingDim(), &info
156 TEUCHOS_TEST_FOR_EXCEPTION(
157 info < 0, std::invalid_argument
158 ,
"getrs(...): Error, Invalid argument "
159 << -info <<
" sent to LAPACK function xGETRS(...)" );
Class for a non-changeable sub-multi-vector (submatrix).
const ArrayRCP< const Scalar > values() const
Ordinal leadingDim() const
Ordinal numSubCols() const
Class for a changeable sub-vector.
const ArrayRCP< Scalar > values() const
const Teuchos::Tuple< char, NUM_ETRANS_ARGS > transpMap
void getrs(const ConstSubMultiVectorView< Scalar > &A, const ArrayView< const int > &ipiv, const ETransp transp, const Ptr< const SubMultiVectorView< Scalar > > &BX)
void getrf(const SubMultiVectorView< Scalar > &A, const ArrayView< int > &ipiv, const Ptr< int > &rank)
Peform an in-place factorization of a square or rectangular matrix.
const int NUM_ETRANS_ARGS