IMP logo
IMP Reference Guide  develop.cb6747d2d1,2024/03/28
The Integrative Modeling Platform
IMP::core::WeightedSumOfExponential Class Reference

Negative logarithm of weighted sum of negative exponential of unary functions. More...

#include <IMP/core/WeightedSumOfExponential.h>

+ Inheritance diagram for IMP::core::WeightedSumOfExponential:

Detailed Description

Negative logarithm of weighted sum of negative exponential of unary functions.

Given unary functions \( f_i(x) \) and weights \( w_i \), compute the function

\[ F(x) = -d \log\left[ \sum_i{ \left( w_i e^{-f_i(x) / d} \right) } \right] ,\]

where \( d \) is the denominator of the exponential. This is used when the functions \( f_i(x) \) are scores ( \( -\log(p) \)), and the desired score \( F(x) \) is the score resulting from the weighted convolution of their probability distributions.

See Also
WeightedSum

Definition at line 26 of file WeightedSumOfExponential.h.

Public Member Functions

 WeightedSumOfExponential (UnaryFunctions funcs, Floats weights, Float denom=1.0)
 
virtual double evaluate (double feature) const override
 Calculate score with respect to the given feature. More...
 
virtual DerivativePair evaluate_with_derivative (double feature) const override
 Calculate score and derivative with respect to the given feature. More...
 
double get_denominator ()
 Get the denominator of the exponential. More...
 
UnaryFunctionget_function (unsigned int i)
 Get function at index. More...
 
unsigned int get_function_number ()
 Get the number of functions. More...
 
virtual std::string get_type_name () const override
 
virtual ::IMP::VersionInfo get_version_info () const override
 Get information about the module and version of the object. More...
 
double get_weight (unsigned int i) const
 Get function weight at index. More...
 
Floats get_weights ()
 Get the function weights. More...
 
void set_denominator (double denom)
 Set the denominator of the exponential. More...
 
void set_weights (Floats weights)
 Set the function weights. More...
 
- Public Member Functions inherited from IMP::UnaryFunction
 UnaryFunction (std::string name="UnaryFunction%1%")
 
- Public Member Functions inherited from IMP::Object
virtual void clear_caches ()
 
CheckLevel get_check_level () const
 
LogLevel get_log_level () const
 
void set_check_level (CheckLevel l)
 
void set_log_level (LogLevel l)
 Set the logging level used in this object. More...
 
void set_was_used (bool tf) const
 
void show (std::ostream &out=std::cout) const
 
const std::string & get_name () const
 
void set_name (std::string name)
 

Additional Inherited Members

- Protected Member Functions inherited from IMP::Object
 Object (std::string name)
 Construct an object with the given name. More...
 
virtual void do_destroy ()
 

Constructor & Destructor Documentation

IMP::core::WeightedSumOfExponential::WeightedSumOfExponential ( UnaryFunctions  funcs,
Floats  weights,
Float  denom = 1.0 
)

Create with the functions and their respective weights

Definition at line 29 of file WeightedSumOfExponential.h.

Member Function Documentation

virtual double IMP::core::WeightedSumOfExponential::evaluate ( double  feature) const
overridevirtual

Calculate score with respect to the given feature.

Parameters
[in]featureValue of feature being tested.
Returns
Score

Reimplemented from IMP::UnaryFunction.

Definition at line 56 of file WeightedSumOfExponential.h.

virtual DerivativePair IMP::core::WeightedSumOfExponential::evaluate_with_derivative ( double  feature) const
overridevirtual

Calculate score and derivative with respect to the given feature.

Parameters
[in]featureValue of feature being tested.
Returns
a DerivativePair containing the score and its partial derivative with respect to the given feature.

Reimplemented from IMP::UnaryFunction.

Definition at line 41 of file WeightedSumOfExponential.h.

double IMP::core::WeightedSumOfExponential::get_denominator ( )

Get the denominator of the exponential.

Definition at line 99 of file WeightedSumOfExponential.h.

UnaryFunction* IMP::core::WeightedSumOfExponential::get_function ( unsigned int  i)

Get function at index.

Definition at line 86 of file WeightedSumOfExponential.h.

unsigned int IMP::core::WeightedSumOfExponential::get_function_number ( )

Get the number of functions.

Definition at line 65 of file WeightedSumOfExponential.h.

virtual ::IMP::VersionInfo IMP::core::WeightedSumOfExponential::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::Object.

Definition at line 101 of file WeightedSumOfExponential.h.

double IMP::core::WeightedSumOfExponential::get_weight ( unsigned int  i) const

Get function weight at index.

Definition at line 80 of file WeightedSumOfExponential.h.

Floats IMP::core::WeightedSumOfExponential::get_weights ( )

Get the function weights.

Definition at line 77 of file WeightedSumOfExponential.h.

void IMP::core::WeightedSumOfExponential::set_denominator ( double  denom)

Set the denominator of the exponential.

Definition at line 92 of file WeightedSumOfExponential.h.

void IMP::core::WeightedSumOfExponential::set_weights ( Floats  weights)

Set the function weights.

Definition at line 70 of file WeightedSumOfExponential.h.


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