Epetra Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
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//=========================================================================
130class 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
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
268
272
273 private:
274
275 bool Upper_;
276
277 char UPLO_;
278
279
280};
281
282#endif /* EPETRA_SERIALSYMDENSEMATRIX_H */
Epetra_DataAccess
Epetra_SerialDenseMatrix: A class for constructing and using real double precision general dense matr...
virtual double NormInf() const
Computes the Infinity-Norm of the this matrix.
int Scale(double ScalarA)
Inplace scalar-matrix product A = a A.
int Shape(int NumRows, int NumCols)
Set dimensions of a Epetra_SerialDenseMatrix object; init values to zero.
virtual double NormOne() const
Computes the 1-Norm of the this matrix.
int Reshape(int NumRows, int NumCols)
Reshape a Epetra_SerialDenseMatrix object.
Epetra_SerialSymDenseMatrix: A class for constructing and using symmetric positive definite dense mat...
int Reshape(int NumRowsCols)
Reshape a Epetra_SerialSymDenseMatrix object.
double InfNorm() const
Computes the Infinity-Norm of the this matrix (identical to NormInf() method).
int Shape(int NumRowsCols)
Set dimensions of a Epetra_SerialSymDenseMatrix object; init values to zero.
char UPLO() const
Returns character value of UPLO used by LAPACK routines.
bool Upper() const
Returns true if upper triangle of this matrix has and will be used.
double NormInf() const
Computes the Infinity-Norm of the this matrix.
void SetUpper()
Specify that the upper triangle of the this matrix should be used.
void SetLower()
Specify that the lower triangle of the this matrix should be used.
double OneNorm() const
Computes the 1-Norm of the this matrix (identical to NormOne() method).
double NormOne() const
Computes the 1-Norm of the this matrix.