Epetra Package Browser (Single Doxygen Collection)
Development
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Epetra_CompObject.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_COMPOBJECT_H
45
#define EPETRA_COMPOBJECT_H
46
48
53
#include "
Epetra_ConfigDefs.h
"
54
#include "
Epetra_Object.h
"
55
#include "
Epetra_Flops.h
"
56
//==========================================================================
57
class
EPETRA_LIB_DLL_EXPORT
Epetra_CompObject
{
58
59
public
:
60
62
63
64
Epetra_CompObject
();
65
67
68
Epetra_CompObject
(
const
Epetra_CompObject
& Source);
69
70
72
virtual
~Epetra_CompObject
();
74
76
77
78
void
SetFlopCounter
(
const
Epetra_Flops
& FlopCounter_in) {
FlopCounter_
= (
Epetra_Flops
*) &FlopCounter_in;
return
;}
80
void
SetFlopCounter
(
const
Epetra_CompObject
& CompObject) {
FlopCounter_
= (
Epetra_Flops
*) (CompObject.
GetFlopCounter
());
return
;}
82
void
UnsetFlopCounter
() {
FlopCounter_
= 0;
return
;}
84
Epetra_Flops
*
GetFlopCounter
()
const
{
return
(
FlopCounter_
);}
86
88
89
90
void
ResetFlops
()
const
{
if
(
FlopCounter_
!=0)
FlopCounter_
->ResetFlops();
return
;}
91
93
double
Flops
()
const
{
if
(
FlopCounter_
!=0)
return
(
FlopCounter_
->Flops());
else
return
(0.0);}
95
97
98
99
void
UpdateFlops
(
int
Flops_in)
const
{
if
(
FlopCounter_
!=0)
FlopCounter_
->UpdateFlops(Flops_in);
return
;}
100
102
void
UpdateFlops
(
long
int
Flops_in)
const
{
if
(
FlopCounter_
!=0)
FlopCounter_
->UpdateFlops(Flops_in);
return
;}
103
105
void
UpdateFlops
(
long
long
Flops_in)
const
{
if
(
FlopCounter_
!=0)
FlopCounter_
->UpdateFlops(Flops_in);
return
;}
106
108
void
UpdateFlops
(
double
Flops_in)
const
{
if
(
FlopCounter_
!=0)
FlopCounter_
->UpdateFlops(Flops_in);
return
;}
109
111
void
UpdateFlops
(
float
Flops_in)
const
{
if
(
FlopCounter_
!=0)
FlopCounter_
->UpdateFlops(Flops_in);
return
;}
113
114
Epetra_CompObject
&
operator=
(
const
Epetra_CompObject
& src)
115
{
116
FlopCounter_
= src.
FlopCounter_
;
117
return
(*
this
);
118
}
119
120
protected
:
121
122
123
Epetra_Flops
*
FlopCounter_
;
124
125
};
126
127
#endif
/* EPETRA_COMPOBJECT_H */
Epetra_ConfigDefs.h
Epetra_Flops.h
Epetra_Object.h
Epetra_CompObject::SetFlopCounter
void SetFlopCounter(const Epetra_CompObject &CompObject)
Set the internal Epetra_Flops() pointer to the flop counter of another Epetra_CompObject.
Definition
Epetra_CompObject.h:80
Epetra_CompObject::GetFlopCounter
Epetra_Flops * GetFlopCounter() const
Get the pointer to the Epetra_Flops() object associated with this object, returns 0 if none.
Definition
Epetra_CompObject.h:84
Epetra_CompObject::FlopCounter_
Epetra_Flops * FlopCounter_
Definition
Epetra_CompObject.h:123
Epetra_CompObject::UpdateFlops
void UpdateFlops(long int Flops_in) const
Increment Flop count for this object.
Definition
Epetra_CompObject.h:102
Epetra_CompObject::ResetFlops
void ResetFlops() const
Resets the number of floating point operations to zero for this multi-vector.
Definition
Epetra_CompObject.h:90
Epetra_CompObject::UpdateFlops
void UpdateFlops(double Flops_in) const
Increment Flop count for this object.
Definition
Epetra_CompObject.h:108
Epetra_CompObject::SetFlopCounter
void SetFlopCounter(const Epetra_Flops &FlopCounter_in)
Set the internal Epetra_Flops() pointer.
Definition
Epetra_CompObject.h:78
Epetra_CompObject::Epetra_CompObject
Epetra_CompObject()
Basic Epetra_CompObject constuctor.
Definition
Epetra_CompObject.cpp:52
Epetra_CompObject::UpdateFlops
void UpdateFlops(long long Flops_in) const
Increment Flop count for this object.
Definition
Epetra_CompObject.h:105
Epetra_CompObject::UnsetFlopCounter
void UnsetFlopCounter()
Set the internal Epetra_Flops() pointer to 0 (no flops counted).
Definition
Epetra_CompObject.h:82
Epetra_CompObject::Flops
double Flops() const
Returns the number of floating point operations with this multi-vector.
Definition
Epetra_CompObject.h:93
Epetra_CompObject::operator=
Epetra_CompObject & operator=(const Epetra_CompObject &src)
Definition
Epetra_CompObject.h:114
Epetra_CompObject::UpdateFlops
void UpdateFlops(float Flops_in) const
Increment Flop count for this object.
Definition
Epetra_CompObject.h:111
Epetra_CompObject::UpdateFlops
void UpdateFlops(int Flops_in) const
Increment Flop count for this object.
Definition
Epetra_CompObject.h:99
Epetra_Flops
Epetra_Flops: The Epetra Floating Point Operations Class.
Definition
Epetra_Flops.h:58
Generated by
1.17.0