MADNESS 0.10.1
Public Types | Public Member Functions | Private Attributes | List of all members
madness::ScalarResultImpl< T > Class Template Reference

helper class for returning the result of a task, which is not a madness Function, but a simple scalar More...

#include <macrotaskq.h>

Inheritance diagram for madness::ScalarResultImpl< T >:
Inheritance graph
[legend]
Collaboration diagram for madness::ScalarResultImpl< T >:
Collaboration graph
[legend]

Public Types

typedef T value_type
 
- Public Types inherited from madness::WorldObject< ScalarResultImpl< T > >
typedef WorldObject< ScalarResultImpl< T > > objT
 

Public Member Functions

 ScalarResultImpl (const ScalarResultImpl &other)=delete
 Disable the default copy constructor.
 
 ScalarResultImpl (World &world)
 
 ~ScalarResultImpl ()
 
void gaxpy (const double a, const T &right, double b, const bool fence=true)
 accumulate, optional fence
 
T get ()
 after completion of the taskq get the final value
 
T get_local () const
 
ScalarResultImpl< T > & operator+= (const T &x)
 
ScalarResultImpl< T > & operator= (const ScalarResultImpl< T > &other)=delete
 disable assignment operator
 
ScalarResultImpl< T > & operator= (const T &x)
 simple assignment of the scalar value
 
template<typename Archive >
void serialize (Archive &ar)
 
- Public Member Functions inherited from madness::WorldObject< ScalarResultImpl< T > >
 WorldObject (const WorldObject &other)
 
 WorldObject (World &world)
 Constructor that associates an object (via the derived class) with a globally unique ID.
 
virtual ~WorldObject ()
 
Worldget_world () const
 Returns a reference to the world.
 
const uniqueidTid () const
 Returns the globally unique object ID.
 
WorldObjectoperator= (const WorldObject &)=delete
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8) const
 
detail::task_result_type< memfnT >::futureT send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9) const
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8,a9).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5,a6).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4,a5).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3,a4).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2,a3).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1,a2).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const a1T &a1, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)(a1).
 
detail::task_result_type< memfnT >::futureT task (ProcessID dest, memfnT memfn, const TaskAttributes &attr=TaskAttributes()) const
 Sends task to derived class method returnT (this->*memfn)().
 
- Public Member Functions inherited from madness::WorldObjectBase
virtual ~WorldObjectBase ()=default
 

Private Attributes

T value =T()
 the scalar value
 

Additional Inherited Members

- Protected Member Functions inherited from madness::WorldObject< ScalarResultImpl< T > >
void process_pending ()
 To be called from derived constructor to process pending messages.
 

Detailed Description

template<typename T>
class madness::ScalarResultImpl< T >

helper class for returning the result of a task, which is not a madness Function, but a simple scalar

the result value is accumulated via gaxpy in universe rank=0, after completion of the taskq the final value can be obtained via get(), which includes a broadcast of the final value to all processes

Member Typedef Documentation

◆ value_type

template<typename T >
typedef T madness::ScalarResultImpl< T >::value_type

Constructor & Destructor Documentation

◆ ScalarResultImpl() [1/2]

template<typename T >
madness::ScalarResultImpl< T >::ScalarResultImpl ( World world)
inline

◆ ScalarResultImpl() [2/2]

template<typename T >
madness::ScalarResultImpl< T >::ScalarResultImpl ( const ScalarResultImpl< T > &  other)
delete

Disable the default copy constructor.

◆ ~ScalarResultImpl()

template<typename T >
madness::ScalarResultImpl< T >::~ScalarResultImpl ( )
inline

Member Function Documentation

◆ gaxpy()

template<typename T >
void madness::ScalarResultImpl< T >::gaxpy ( const double  a,
const T right,
double  b,
const bool  fence = true 
)
inline

◆ get()

template<typename T >
T madness::ScalarResultImpl< T >::get ( )
inline

◆ get_local()

template<typename T >
T madness::ScalarResultImpl< T >::get_local ( ) const
inline

get the local value of this rank, which might differ for different ranks for the final value use get()

References madness::ScalarResultImpl< T >::value.

◆ operator+=()

template<typename T >
ScalarResultImpl< T > & madness::ScalarResultImpl< T >::operator+= ( const T x)
inline

◆ operator=() [1/2]

template<typename T >
ScalarResultImpl< T > & madness::ScalarResultImpl< T >::operator= ( const ScalarResultImpl< T > &  other)
delete

disable assignment operator

◆ operator=() [2/2]

template<typename T >
ScalarResultImpl< T > & madness::ScalarResultImpl< T >::operator= ( const T x)
inline

simple assignment of the scalar value

References madness::ScalarResultImpl< T >::value.

◆ serialize()

template<typename T >
template<typename Archive >
void madness::ScalarResultImpl< T >::serialize ( Archive &  ar)
inline

Member Data Documentation

◆ value

template<typename T >
T madness::ScalarResultImpl< T >::value =T()
private

The documentation for this class was generated from the following file: