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
47 
48 
50 
129 //=========================================================================
130 class EPETRA_LIB_DLL_EXPORT Epetra_SerialSymDenseMatrix : public Epetra_SerialDenseMatrix {
131 
132  public:
134 
135 
148 
163  Epetra_SerialSymDenseMatrix(Epetra_DataAccess CV, double *A, int LDA, int NumRowsCols);
164 
166 
168 
169 
171  virtual ~Epetra_SerialSymDenseMatrix ();
173 
175 
176 
177  //let the compiler know we intend to overload the base-class Shape function,
178  //rather than hide it.
180 
182 
192  int Shape(int NumRowsCols) {return(Epetra_SerialDenseMatrix::Shape(NumRowsCols,NumRowsCols));};
193 
194  //let the compiler know we intend to overload the base-class Reshape function,
195  //rather than hide it.
196 
198 
200 
211  int Reshape(int NumRowsCols) {return(Epetra_SerialDenseMatrix::Reshape(NumRowsCols,NumRowsCols));};
212 
213 
215  void SetLower() {Upper_ = false; UPLO_ = 'L';};
216 
218  void SetUpper() {Upper_ = true; UPLO_ = 'U';};
220 
222 
223 
225  bool Upper() const {return(Upper_);};
226 
228  char UPLO() const {return(UPLO_);};
230 
232 
233 
235 
244  int Scale ( double ScalarA );
245 
246 
248 
251  double NormOne() const;
252 
254  double NormInf() const;
255 
257 
258  void CopyUPLOMat(bool Upper, double * A, int LDA, int NumRows);
259 
261 
262 
264 
267  double OneNorm() const {return(Epetra_SerialSymDenseMatrix::NormOne());};
268 
270  double InfNorm() const {return(Epetra_SerialSymDenseMatrix::NormInf());};
272 
273  private:
274 
275  bool Upper_;
276 
277  char UPLO_;
278 
279 
280 };
281 
282 #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.