SNAP Library 2.1, Developer Reference  2013-09-25 10:47:25
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
mag.cpp File Reference
#include "stdafx.h"
#include "mag.h"
Include dependency graph for mag.cpp:

Go to the source code of this file.

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)

Function Documentation

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);
}

Here is the caller graph for this function:

const double LogSumExp ( const TFltV LogValV)

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);
}

Here is the call graph for this function:

const double LogSumExp ( const double *  LogValArray,
const int  Len 
)

Definition at line 697 of file mag.cpp.

References LogSumExp().

                                                                 {
        TFltV TmpV(Len);
        for(int i = 0; i < Len; i++) {  TmpV[i] = LogValArray[i];  }
        return LogSumExp(TmpV);
}

Here is the call graph for this function: