Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Tsqr_Blas.hpp
00001 //@HEADER
00002 // ************************************************************************
00003 // 
00004 //          Kokkos: Node API and Parallel Node Kernels
00005 //              Copyright (2008) Sandia Corporation
00006 // 
00007 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
00008 // the U.S. Government retains certain rights in this software.
00009 // 
00010 // Redistribution and use in source and binary forms, with or without
00011 // modification, are permitted provided that the following conditions are
00012 // met:
00013 //
00014 // 1. Redistributions of source code must retain the above copyright
00015 // notice, this list of conditions and the following disclaimer.
00016 //
00017 // 2. Redistributions in binary form must reproduce the above copyright
00018 // notice, this list of conditions and the following disclaimer in the
00019 // documentation and/or other materials provided with the distribution.
00020 //
00021 // 3. Neither the name of the Corporation nor the names of the
00022 // contributors may be used to endorse or promote products derived from
00023 // this software without specific prior written permission.
00024 //
00025 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
00026 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00027 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00028 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
00029 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00030 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00031 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00032 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00033 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00034 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00035 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00036 //
00037 // Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00038 // 
00039 // ************************************************************************
00040 //@HEADER
00041 
00042 #ifndef __TSQR_TsqrBlas_hpp
00043 #define __TSQR_TsqrBlas_hpp
00044 
00045 #include <Tsqr_ConfigDefs.hpp>
00046 
00047 namespace TSQR {
00048 
00052   template<class Ordinal, class Scalar>
00053   class BLAS {
00054   public:
00055     BLAS () {}
00056 
00057     void 
00058     GEMV (const char* const trans, 
00059     const Ordinal m, 
00060     const Ordinal n,
00061     const Scalar alpha,
00062     const Scalar A[],
00063     const Ordinal lda,
00064     const Scalar x[],
00065     const Ordinal incx,
00066     const Scalar beta,
00067     Scalar y[],
00068     const Ordinal incy);
00069 
00070     void
00071     GEMM (const char* const transa,
00072     const char* const transb,
00073     const Ordinal m,
00074     const Ordinal n,
00075     const Ordinal k,
00076     const Scalar alpha,
00077     const Scalar A[],
00078     const Ordinal lda,
00079     const Scalar B[],
00080     const Ordinal ldb,
00081     const Scalar beta,
00082     Scalar C[],
00083     const Ordinal ldc);
00084 
00088     void
00089     GER (const Ordinal m,
00090    const Ordinal n,
00091    const Scalar alpha,
00092    const Scalar x[],
00093    const Ordinal incx,
00094    const Scalar y[],
00095    const Ordinal incy,
00096    Scalar A[],
00097    const Ordinal lda);
00098 
00099     void
00100     TRSM (const char* const side,
00101     const char* const uplo,
00102     const char* const transa,
00103     const char* const diag,
00104     const Ordinal m,
00105     const Ordinal n,
00106     const Scalar alpha,
00107     const Scalar A[],
00108     const Ordinal lda,
00109     Scalar B[],
00110     const Ordinal ldb);
00111 
00112   private:
00113     BLAS (const BLAS&);
00114     BLAS& operator= (const BLAS&);
00115   };
00116 
00117 } // namespace TSQR
00118 
00119 #endif // __TSQR_TsqrBlas_hpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends