Epetra_SerialSymDenseMatrix.h

Go to the documentation of this file.
00001 
00002 //@HEADER
00003 /*
00004 ************************************************************************
00005 
00006               Epetra: Linear Algebra Services Package 
00007                 Copyright (2001) Sandia Corporation
00008 
00009 Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00010 license for use of this work by or on behalf of the U.S. Government.
00011 
00012 This library is free software; you can redistribute it and/or modify
00013 it under the terms of the GNU Lesser General Public License as
00014 published by the Free Software Foundation; either version 2.1 of the
00015 License, or (at your option) any later version.
00016  
00017 This library is distributed in the hope that it will be useful, but
00018 WITHOUT ANY WARRANTY; without even the implied warranty of
00019 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020 Lesser General Public License for more details.
00021  
00022 You should have received a copy of the GNU Lesser General Public
00023 License along with this library; if not, write to the Free Software
00024 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00025 USA
00026 Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00027 
00028 ************************************************************************
00029 */
00030 //@HEADER
00031 
00032 #ifndef EPETRA_SERIALSYMDENSEMATRIX_H
00033 #define EPETRA_SERIALSYMDENSEMATRIX_H
00034 #include "Epetra_SerialDenseMatrix.h"
00035 
00036 
00038 
00117 //=========================================================================
00118 class Epetra_SerialSymDenseMatrix : public Epetra_SerialDenseMatrix {
00119 
00120  public:
00122 
00123 
00124 
00134   Epetra_SerialSymDenseMatrix(void);
00136 
00151   Epetra_SerialSymDenseMatrix(Epetra_DataAccess CV, double *A, int LDA, int NumRowsCols);
00152   
00154   
00155   Epetra_SerialSymDenseMatrix(const Epetra_SerialSymDenseMatrix& Source);
00156   
00157   
00159   virtual ~Epetra_SerialSymDenseMatrix ();
00161 
00163 
00164 
00165   //let the compiler know we intend to overload the base-class Shape function,
00166   //rather than hide it.  
00167   using Epetra_SerialDenseMatrix::Shape;
00168 
00170 
00180   int Shape(int NumRowsCols) {return(Epetra_SerialDenseMatrix::Shape(NumRowsCols,NumRowsCols));};
00181 
00182   //let the compiler know we intend to overload the base-class Reshape function,
00183   //rather than hide it.
00184   
00185   using Epetra_SerialDenseMatrix::Reshape;
00186 
00188 
00199   int Reshape(int NumRowsCols) {return(Epetra_SerialDenseMatrix::Reshape(NumRowsCols,NumRowsCols));};
00200 
00201 
00203   void SetLower() {Upper_ = false; UPLO_ = 'L';};
00204 
00206   void SetUpper() {Upper_ = true; UPLO_ = 'U';};
00208 
00210 
00211 
00213   bool Upper() const {return(Upper_);};
00214 
00216   char UPLO() const {return(UPLO_);};
00218 
00220 
00221 
00223 
00232   int  Scale ( double ScalarA );
00233 
00234 
00236 
00239   double NormOne() const;
00240 
00242   double NormInf() const;
00243 
00245 
00246   void CopyUPLOMat(bool Upper, double * A, int LDA, int NumRows);
00247 
00249 
00250 
00252 
00255   double OneNorm() const {return(Epetra_SerialSymDenseMatrix::NormOne());};
00256 
00258   double InfNorm() const {return(Epetra_SerialSymDenseMatrix::NormInf());};
00260 
00261  private:
00262 
00263   bool Upper_;
00264 
00265   char UPLO_;
00266 
00267 
00268 };
00269 
00270 #endif /* EPETRA_SERIALSYMDENSEMATRIX_H */

Generated on Wed May 12 21:41:05 2010 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.4.7