Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros | Functions
Sacado_ScalarFlopCounter.hpp File Reference
#include "Sacado_ConfigDefs.h"
#include "Sacado_ScalarFlopCounterTraits.hpp"
#include "Sacado_Base.hpp"
#include "Sacado_SFINAE_Macros.hpp"
#include <cmath>
#include <algorithm>
#include <ostream>
Include dependency graph for Sacado_ScalarFlopCounter.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Sacado::FlopCounterPack::FlopCounts
 Class storing flop counts and summary flop counts. More...
 
class  Sacado::FlopCounterPack::ScalarFlopCounter< T >
 Templated flop counter class. More...
 
struct  Sacado::FlopCounterPack::ScalarFlopCounter< T >::apply< U >
 Turn ScalarFlopCounter into a meta-function class usable with mpl::apply. More...
 

Namespaces

 Sacado
 
 Sacado::FlopCounterPack
 

Macros

#define SCALAR_FLOP_COUNTER_BINARY_OP_ASSIGN(OP, OP_NAME)
 
#define SCALAR_FLOP_COUNTER_BINARY_OP(OP, OP_NAME)
 
#define SCALAR_FLOP_COUNTER_UNARY_OP(OP, OP_NAME)
 
#define SCALAR_FLOP_COUNTER_UNARY_FUNC(OP, OP_NAME)
 
#define SCALAR_FLOP_COUNTER_BINARY_FUNC(OP, OP_NAME)
 
#define SCALAR_FLOP_COUNTER_BINARY_COMPARISON_OP(OP, OP_NAME)
 

Functions

std::ostream & Sacado::FlopCounterPack::printCountersTable (const int n, const char *names[], const char *abbr[], const FlopCounts counts[], std::ostream &out)
 Print a list of flop counts into a single table. More...
 

Macro Definition Documentation

#define SCALAR_FLOP_COUNTER_BINARY_OP_ASSIGN (   OP,
  OP_NAME 
)
Value:
ScalarFlopCounter<T> operator OP ( const ScalarFlopCounter<T>& s ) \
{ \
ScalarFlopCounter<T>::incrCounter(OP_NAME); \
val_ OP s.val(); \
return *this; \
}

Definition at line 186 of file Sacado_ScalarFlopCounter.hpp.

#define SCALAR_FLOP_COUNTER_BINARY_OP (   OP,
  OP_NAME 
)

Definition at line 297 of file Sacado_ScalarFlopCounter.hpp.

#define SCALAR_FLOP_COUNTER_UNARY_OP (   OP,
  OP_NAME 
)
Value:
template<class T> \
ScalarFlopCounter<T> operator OP ( \
const Base< ScalarFlopCounter<T> >& aa ) \
{ \
const ScalarFlopCounter<T>& a = aa.derived(); \
ScalarFlopCounter<T>::incrCounter(OP_NAME); \
return ScalarFlopCounter<T>( OP a.val() ); \
}

Definition at line 345 of file Sacado_ScalarFlopCounter.hpp.

#define SCALAR_FLOP_COUNTER_UNARY_FUNC (   OP,
  OP_NAME 
)
Value:
template<class T> \
ScalarFlopCounter<T> OP( \
const Base< ScalarFlopCounter<T> >& aa ) \
{ \
const ScalarFlopCounter<T>& a = aa.derived(); \
ScalarFlopCounter<T>::incrCounter(OP_NAME); \
return ScalarFlopCounter<T>( std::OP( a.val() ) ); \
}

Definition at line 355 of file Sacado_ScalarFlopCounter.hpp.

#define SCALAR_FLOP_COUNTER_BINARY_FUNC (   OP,
  OP_NAME 
)

Definition at line 365 of file Sacado_ScalarFlopCounter.hpp.

#define SCALAR_FLOP_COUNTER_BINARY_COMPARISON_OP (   OP,
  OP_NAME 
)
Value:
template<class T> \
bool operator OP ( \
const Base< ScalarFlopCounter<T> >& aa, \
const Base< ScalarFlopCounter<T> >& bb ) \
{ \
const ScalarFlopCounter<T>& a = aa.derived(); \
const ScalarFlopCounter<T>& b = bb.derived(); \
ScalarFlopCounter<T>::incrCounter(OP_NAME); \
return (a.val() OP b.val()); \
} \
template<class T> \
bool operator OP ( \
const typename ScalarFlopCounter<T>::value_type& a, \
const Base< ScalarFlopCounter<T> >& bb ) \
{ \
const ScalarFlopCounter<T>& b = bb.derived(); \
ScalarFlopCounter<T>::incrCounter(OP_NAME); \
return (a OP b.val()); \
} \
template<class T> \
bool operator OP ( \
const Base< ScalarFlopCounter<T> >& aa, \
const typename ScalarFlopCounter<T>::value_type& b ) \
{ \
const ScalarFlopCounter<T>& a = aa.derived(); \
ScalarFlopCounter<T>::incrCounter(OP_NAME); \
return (a.val() OP b); \
}

Definition at line 413 of file Sacado_ScalarFlopCounter.hpp.