| 
    SNAP Library 2.0, Developer Reference
    2013-05-13 16:33:57
    
   SNAP, a general purpose, high performance system for analysis and manipulation of large networks 
   | 
  
  
  
 


Go to the source code of this file.
Classes | |
| class | TMAGAffMtx | 
| class | TMAGNodeSimple | 
| class | TMAGNodeBern | 
| class | TMAGNodeBeta | 
| class | TMAGParam< TNodeAttr > | 
| class | TMAGFitBern | 
Typedefs | |
| typedef TVec< TMAGAffMtx > | TMAGAffMtxV | 
Functions | |
| const double | LogSumExp (const double LogVal1, const double LogVal2) | 
| const double | LogSumExp (const TFltV &LogValV) | 
| const double | LogSumExp (const double *LogValArray, const int Len) | 
| typedef TVec<TMAGAffMtx> TMAGAffMtxV | 
| const double LogSumExp | ( | const double | LogVal1, | 
| const double | LogVal2 | ||
| ) | 
Definition at line 675 of file mag.cpp.
Referenced by TMAGFitBern::GradApxAffMtx(), LogSumExp(), TMAGFitBern::UpdateApxPhiMI(), TMAGFitBern::UpdatePhi(), and TMAGFitBern::UpdatePhiMI().
                                                                   {
        double MaxExp = (LogVal1 > LogVal2) ? LogVal1 : LogVal2;
        double Sum = exp(LogVal1 - MaxExp) + exp(LogVal2 - MaxExp);
        return (log(Sum) + MaxExp);
}

Definition at line 681 of file mag.cpp.
References TVec< TVal, TSizeTy >::Len().
                                             {
        const int Len = LogValV.Len();
        double MaxExp = -DBL_MAX;
        
        for(int i = 0; i < Len; i++) {
                if(MaxExp < LogValV[i]) {  MaxExp = LogValV[i];  }
        }
        
        double Sum = 0.0;
        for(int i = 0; i < Len; i++) {
                Sum += exp(LogValV[i] - MaxExp);
        }
        return (log(Sum) + MaxExp);
}
