NAMD
Public Member Functions | Public Attributes | List of all members
ReductionValue Class Reference

#include <ReductionMgr.h>

Public Member Functions

 ReductionValue ()
 
 ReductionValue (double)
 
 ~ReductionValue ()
 
double operator+= (double other)
 
double operator+= (int other)
 
double operator+= (unsigned int other)
 
double operator= (double &other)
 
 operator double ()
 
 operator int ()
 
void increment_no_lock (double rvalue)
 

Public Attributes

double reducedValue
 
CmiNodeLock valueLock
 

Detailed Description

Definition at line 434 of file ReductionMgr.h.

Constructor & Destructor Documentation

◆ ReductionValue() [1/2]

ReductionValue::ReductionValue ( )

Definition at line 599 of file ReductionMgr.C.

References reducedValue, and valueLock.

599  {
600  reducedValue = 0.0;
601  valueLock = CmiCreateLock();
602 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:437
double reducedValue
Definition: ReductionMgr.h:436

◆ ReductionValue() [2/2]

ReductionValue::ReductionValue ( double  )

◆ ~ReductionValue()

ReductionValue::~ReductionValue ( )

Definition at line 604 of file ReductionMgr.C.

References valueLock.

604  {
605  CmiDestroyLock(this->valueLock);
606 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:437

Member Function Documentation

◆ increment_no_lock()

void ReductionValue::increment_no_lock ( double  rvalue)

Definition at line 634 of file ReductionMgr.C.

References reducedValue.

Referenced by SubmitReductionShared::submit().

634  {
635  reducedValue += rvalue;
636 }
double reducedValue
Definition: ReductionMgr.h:436

◆ operator double()

ReductionValue::operator double ( )

Definition at line 642 of file ReductionMgr.C.

642  {
643  return reducedValue;
644 }
double reducedValue
Definition: ReductionMgr.h:436

◆ operator int()

ReductionValue::operator int ( )

Definition at line 638 of file ReductionMgr.C.

638  {
639  return (int)reducedValue;
640 }
double reducedValue
Definition: ReductionMgr.h:436

◆ operator+=() [1/3]

double ReductionValue::operator+= ( double  other)

Definition at line 609 of file ReductionMgr.C.

References reducedValue, and valueLock.

609  {
610  //reducedValue.fetch_add(rvalue, std::memory_order_relaxed);
611  CmiLock(valueLock);
612  reducedValue += rvalue;
613  CmiUnlock(valueLock);
614  return reducedValue;
615 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:437
double reducedValue
Definition: ReductionMgr.h:436

◆ operator+=() [2/3]

double ReductionValue::operator+= ( int  other)

Definition at line 618 of file ReductionMgr.C.

References reducedValue, and valueLock.

618  {
619  //reducedValue.fetch_add(rvalue, std::memory_order_relaxed);
620  CmiLock(valueLock);
621  reducedValue += rvalue;
622  CmiUnlock(valueLock);
623  return reducedValue;
624 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:437
double reducedValue
Definition: ReductionMgr.h:436

◆ operator+=() [3/3]

double ReductionValue::operator+= ( unsigned int  other)

Definition at line 626 of file ReductionMgr.C.

References reducedValue, and valueLock.

626  {
627  //reducedValue.fetch_add(rvalue, std::memory_order_relaxed);
628  CmiLock(valueLock);
629  reducedValue += rvalue;
630  CmiUnlock(valueLock);
631  return reducedValue;
632 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:437
double reducedValue
Definition: ReductionMgr.h:436

◆ operator=()

double ReductionValue::operator= ( double &  other)

Member Data Documentation

◆ reducedValue

double ReductionValue::reducedValue

◆ valueLock

CmiNodeLock ReductionValue::valueLock

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