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 ()
 

Public Attributes

double reducedValue
 
CmiNodeLock valueLock
 

Detailed Description

Definition at line 349 of file ReductionMgr.h.

Constructor & Destructor Documentation

◆ ReductionValue() [1/2]

ReductionValue::ReductionValue ( )

Definition at line 578 of file ReductionMgr.C.

References reducedValue, and valueLock.

578  {
579  reducedValue = 0.0;
580  valueLock = CmiCreateLock();
581 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:352
double reducedValue
Definition: ReductionMgr.h:351

◆ ReductionValue() [2/2]

ReductionValue::ReductionValue ( double  )

◆ ~ReductionValue()

ReductionValue::~ReductionValue ( )

Definition at line 583 of file ReductionMgr.C.

References valueLock.

583  {
584  CmiDestroyLock(this->valueLock);
585 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:352

Member Function Documentation

◆ operator double()

ReductionValue::operator double ( )

Definition at line 617 of file ReductionMgr.C.

617  {
618  return reducedValue;
619 }
double reducedValue
Definition: ReductionMgr.h:351

◆ operator int()

ReductionValue::operator int ( )

Definition at line 613 of file ReductionMgr.C.

613  {
614  return (int)reducedValue;
615 }
double reducedValue
Definition: ReductionMgr.h:351

◆ operator+=() [1/3]

double ReductionValue::operator+= ( double  other)

Definition at line 588 of file ReductionMgr.C.

References reducedValue, and valueLock.

588  {
589  //reducedValue.fetch_add(rvalue, std::memory_order_relaxed);
590  CmiLock(valueLock);
591  reducedValue += rvalue;
592  CmiUnlock(valueLock);
593  return reducedValue;
594 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:352
double reducedValue
Definition: ReductionMgr.h:351

◆ operator+=() [2/3]

double ReductionValue::operator+= ( int  other)

Definition at line 597 of file ReductionMgr.C.

References reducedValue, and valueLock.

597  {
598  //reducedValue.fetch_add(rvalue, std::memory_order_relaxed);
599  CmiLock(valueLock);
600  reducedValue += rvalue;
601  CmiUnlock(valueLock);
602  return reducedValue;
603 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:352
double reducedValue
Definition: ReductionMgr.h:351

◆ operator+=() [3/3]

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

Definition at line 605 of file ReductionMgr.C.

References reducedValue, and valueLock.

605  {
606  //reducedValue.fetch_add(rvalue, std::memory_order_relaxed);
607  CmiLock(valueLock);
608  reducedValue += rvalue;
609  CmiUnlock(valueLock);
610  return reducedValue;
611 }
CmiNodeLock valueLock
Definition: ReductionMgr.h:352
double reducedValue
Definition: ReductionMgr.h:351

◆ operator=()

double ReductionValue::operator= ( double &  other)

Member Data Documentation

◆ reducedValue

double ReductionValue::reducedValue

Definition at line 351 of file ReductionMgr.h.

Referenced by operator+=(), ReductionValue(), and NodeReduction::setVal().

◆ valueLock

CmiNodeLock ReductionValue::valueLock

Definition at line 352 of file ReductionMgr.h.

Referenced by operator+=(), ReductionValue(), and ~ReductionValue().


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