Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Epetra_SerialSymDenseMatrix.h
Go to the documentation of this file.
1 /*
2 //@HEADER
3 // ************************************************************************
4 //
5 // Epetra: Linear Algebra Services Package
6 // Copyright 2011 Sandia Corporation
7 //
8 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9 // the U.S. Government retains certain rights in this software.
10 //
11 // Redistribution and use in source and binary forms, with or without
12 // modification, are permitted provided that the following conditions are
13 // met:
14 //
15 // 1. Redistributions of source code must retain the above copyright
16 // notice, this list of conditions and the following disclaimer.
17 //
18 // 2. Redistributions in binary form must reproduce the above copyright
19 // notice, this list of conditions and the following disclaimer in the
20 // documentation and/or other materials provided with the distribution.
21 //
22 // 3. Neither the name of the Corporation nor the names of the
23 // contributors may be used to endorse or promote products derived from
24 // this software without specific prior written permission.
25 //
26 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //
38 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39 //
40 // ************************************************************************
41 //@HEADER
42 */
43 
44 #ifndef EPETRA_SERIALSYMDENSEMATRIX_H
45 #define EPETRA_SERIALSYMDENSEMATRIX_H
46 
47 #if defined(Epetra_SHOW_DEPRECATED_WARNINGS)
48 #ifdef __GNUC__
49 #warning "The Epetra package is deprecated"
50 #endif
51 #endif
52 
53 
55 
56 
58 
137 //=========================================================================
138 class EPETRA_LIB_DLL_EXPORT Epetra_SerialSymDenseMatrix : public Epetra_SerialDenseMatrix {
139 
140  public:
142 
143 
156 
171  Epetra_SerialSymDenseMatrix(Epetra_DataAccess CV, double *A, int LDA, int NumRowsCols);
172 
174 
176 
177 
179  virtual ~Epetra_SerialSymDenseMatrix ();
181 
183 
184 
185  //let the compiler know we intend to overload the base-class Shape function,
186  //rather than hide it.
188 
190 
200  int Shape(int NumRowsCols) {return(Epetra_SerialDenseMatrix::Shape(NumRowsCols,NumRowsCols));};
201 
202  //let the compiler know we intend to overload the base-class Reshape function,
203  //rather than hide it.
204 
206 
208 
219  int Reshape(int NumRowsCols) {return(Epetra_SerialDenseMatrix::Reshape(NumRowsCols,NumRowsCols));};
220 
221 
223  void SetLower() {Upper_ = false; UPLO_ = 'L';};
224 
226  void SetUpper() {Upper_ = true; UPLO_ = 'U';};
228 
230 
231 
233  bool Upper() const {return(Upper_);};
234 
236  char UPLO() const {return(UPLO_);};
238 
240 
241 
243 
252  int Scale ( double ScalarA );
253 
254 
256 
259  double NormOne() const;
260 
262  double NormInf() const;
263 
265 
266  void CopyUPLOMat(bool Upper, double * A, int LDA, int NumRows);
267 
269 
270 
272 
275  double OneNorm() const {return(Epetra_SerialSymDenseMatrix::NormOne());};
276 
278  double InfNorm() const {return(Epetra_SerialSymDenseMatrix::NormInf());};
280 
281  private:
282 
283  bool Upper_;
284 
285  char UPLO_;
286 
287 
288 };
289 
290 #endif /* EPETRA_SERIALSYMDENSEMATRIX_H */
virtual double NormInf() const
Computes the Infinity-Norm of the this matrix.
double OneNorm() const
Computes the 1-Norm of the this matrix (identical to NormOne() method).
int Reshape(int NumRowsCols)
Reshape a Epetra_SerialSymDenseMatrix object.
virtual double NormOne() const
Computes the 1-Norm of the this matrix.
Epetra_SerialDenseMatrix: A class for constructing and using real double precision general dense matr...
Epetra_SerialSymDenseMatrix: A class for constructing and using symmetric positive definite dense mat...
double NormInf() const
Computes the Infinity-Norm of the this matrix.
virtual double InfNorm() const
Computes the Infinity-Norm of the this matrix (identical to NormInf() method).
char UPLO() const
Returns character value of UPLO used by LAPACK routines.
double NormOne() const
Computes the 1-Norm of the this matrix.
void SetUpper()
Specify that the upper triangle of the this matrix should be used.
bool Upper() const
Returns true if upper triangle of this matrix has and will be used.
int Reshape(int NumRows, int NumCols)
Reshape a Epetra_SerialDenseMatrix object.
int Scale(double ScalarA)
Inplace scalar-matrix product A = a A.
void SetLower()
Specify that the lower triangle of the this matrix should be used.
Epetra_DataAccess
int Shape(int NumRows, int NumCols)
Set dimensions of a Epetra_SerialDenseMatrix object; init values to zero.
int Shape(int NumRowsCols)
Set dimensions of a Epetra_SerialSymDenseMatrix object; init values to zero.