44   for (
int i=0; i<m_NumRestraints; i++) {
    45     delete m_ppRestraints[i];
    47   delete []m_ppRestraints;
    56   return(m_ppRestraints[
Index]);
    67   if (m_NumRestraints == m_MaxNum) {
    70     ppRestraints = 
new pRestr[m_MaxNum];
    72     memcpy(ppRestraints, m_ppRestraints, 
sizeof(
ARestraint*)*m_NumRestraints);
    74     delete []m_ppRestraints;
    76     m_ppRestraints = ppRestraints;
    80   m_ppRestraints[m_NumRestraints] = pRestraint;
    92   for (
int i=0; i<m_NumRestraints; i++) {
   106   for (i=0; i<m_NumRestraints; i++) {
   109     for (j=0; j<NumCOMs; j++) {
   125   for (
int i=0; i<m_NumRestraints; i++) {
   136   for (
int i=0; i<m_NumRestraints; i++) {
   137     if (m_ppRestraints[i]->IsForcing()) {
   149 #if defined(_VERBOSE_PMF)   150   for (
int i=0; i<m_NumRestraints; i++) {
   163   for (
int i=0; i<m_NumRestraints; i++) {
   164 #if defined(_VERBOSE_PMF)   169 #if !defined(_VERBOSE_PMF)   179 #if defined(_VERBOSE_PMF)   180   for (
int i=0; i<m_NumRestraints; i++) {
   181     if (m_ppRestraints[i]->IsForcing()) {
   183       iout << 
"dU/dLambda = ";
   198   sprintf(NumStr, 
"%3d", 
Index+1);
   199   iout << 
"FreeEnergy: " << 
"Restraint " << NumStr << 
":  ";
 
void PrintPreInfo(int Index)
 
std::ostream & endi(std::ostream &s)
 
virtual void PrintInfo()=0
 
void Print_dU_dLambda_Info()
 
void Add(ARestraint *pRestraint)
 
virtual double GetEnergy()=0
 
virtual double Get_dU_dLambda()
 
void DistributeForce(int WhichGroup, AVector Force, GlobalMasterFreeEnergy &CFE)
 
void UpdateCOMs(GlobalMasterFreeEnergy &CFE)
 
void UpdateCOMs(GlobalMasterFreeEnergy &CFE)
 
void AddForces(GlobalMasterFreeEnergy &CFE)
 
Bool_t ThereIsAForcingRestraint()
 
ARestraint * operator[](int Index)
 
virtual void GetStr(char *Str)=0
 
void PrintRestraintInfo()
 
virtual AVector GetGradient(int WhichGroup)=0