Teuchos Package Browser (Single Doxygen Collection)
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
numerics
src
Teuchos_CompObject.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Teuchos: Common Tools Package
5
// Copyright (2004) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
// Kris
43
// 07.08.03 -- Move into Teuchos package/namespace
44
45
#ifndef TEUCHOS_COMPOBJECT_HPP
46
#define TEUCHOS_COMPOBJECT_HPP
47
52
53
#include "
Teuchos_Object.hpp
"
54
#include "
Teuchos_Flops.hpp
"
55
62
63
namespace
Teuchos
64
{
65
class
TEUCHOSNUMERICS_LIB_DLL_EXPORT
CompObject
66
{
67
68
public
:
69
71
72
74
CompObject
();
75
77
CompObject
(
const
CompObject
&source);
78
80
virtual
~CompObject
();
82
84
85
86
void
setFlopCounter
(
const
Flops
&FlopCounter) {
flopCounter_
= (
Flops
*) &FlopCounter;
return
;}
87
89
void
setFlopCounter
(
const
CompObject
&compObject) {
flopCounter_
= (
Flops
*) (compObject.
getFlopCounter
());
return
;}
90
92
void
unsetFlopCounter
() {
flopCounter_
=0;
return
;}
93
95
Flops
*
getFlopCounter
()
const
{
return
(
flopCounter_
);}
97
99
100
101
void
resetFlops
()
const
{
if
(
flopCounter_
!=0)
flopCounter_
->resetFlops();
return
;}
102
104
double
getFlops
()
const
{
if
(
flopCounter_
!=0)
return
(
flopCounter_
->flops());
else
return
(0.0);}
106
108
109
110
void
updateFlops
(
int
addflops)
const
{
if
(
flopCounter_
!=0)
flopCounter_
->updateFlops(addflops);
return
;}
111
113
void
updateFlops
(
long
int
addflops)
const
{
if
(
flopCounter_
!=0)
flopCounter_
->updateFlops(addflops);
return
;}
114
116
void
updateFlops
(
double
addflops)
const
{
if
(
flopCounter_
!=0)
flopCounter_
->updateFlops(addflops);
return
;}
117
119
void
updateFlops
(
float
addflops)
const
{
if
(
flopCounter_
!=0)
flopCounter_
->updateFlops(addflops);
return
;}
121
122
protected
:
123
124
Flops
*
flopCounter_
;
125
126
};
127
128
// #include "Teuchos_CompObject.cpp"
129
130
}
// namespace Teuchos
131
132
#endif
// end of TEUCHOS_COMPOBJECT_HPP
TEUCHOSNUMERICS_LIB_DLL_EXPORT
#define TEUCHOSNUMERICS_LIB_DLL_EXPORT
Definition
Teuchos_DLLExportMacro.h:39
Teuchos_Flops.hpp
Object for providing basic support and consistent interfaces for counting/reporting floating-point op...
Teuchos_Object.hpp
The base Teuchos object.
Teuchos::CompObject::setFlopCounter
void setFlopCounter(const Flops &FlopCounter)
Set the internal Teuchos::Flops() pointer.
Definition
Teuchos_CompObject.hpp:86
Teuchos::CompObject::updateFlops
void updateFlops(int addflops) const
Increment Flop count for this object.
Definition
Teuchos_CompObject.hpp:110
Teuchos::CompObject::updateFlops
void updateFlops(long int addflops) const
Increment Flop count for this object.
Definition
Teuchos_CompObject.hpp:113
Teuchos::CompObject::CompObject
CompObject()
Default constructor.
Definition
Teuchos_CompObject.cpp:52
Teuchos::CompObject::unsetFlopCounter
void unsetFlopCounter()
Set the internal Teuchos::Flops() pointer to 0 (no flops counted).
Definition
Teuchos_CompObject.hpp:92
Teuchos::CompObject::getFlopCounter
Flops * getFlopCounter() const
Get the pointer to the Teuchos::Flops() object associated with this object, returns 0 if none.
Definition
Teuchos_CompObject.hpp:95
Teuchos::CompObject::flopCounter_
Flops * flopCounter_
Definition
Teuchos_CompObject.hpp:124
Teuchos::CompObject::updateFlops
void updateFlops(double addflops) const
Increment Flop count for this object.
Definition
Teuchos_CompObject.hpp:116
Teuchos::CompObject::resetFlops
void resetFlops() const
Resets the number of floating point operations to zero for this multi-stdvector.
Definition
Teuchos_CompObject.hpp:101
Teuchos::CompObject::getFlops
double getFlops() const
Returns the number of floating point operations with this multi-stdvector.
Definition
Teuchos_CompObject.hpp:104
Teuchos::CompObject::setFlopCounter
void setFlopCounter(const CompObject &compObject)
Set the internal Teuchos::Flops() pointer to the flop counter of another Teuchos::CompObject.
Definition
Teuchos_CompObject.hpp:89
Teuchos::CompObject::updateFlops
void updateFlops(float addflops) const
Increment Flop count for this object.
Definition
Teuchos_CompObject.hpp:119
Teuchos::Flops
The Teuchos Floating Point Operations Class.
Definition
Teuchos_Flops.hpp:67
Teuchos
Definition
Teuchos_AbstractFactory.hpp:47
Generated by
1.17.0