14 #ifndef PROB_UTIL_H_INCLUDED
15 #define PROB_UTIL_H_INCLUDED
35 NOTE:
I moved
this to sample_cpp to resolve circular dependency between prob_util.h and prob_distribution.h. Besides,
this is basically sampling, even
36 though its name isnt
sample()...
44 template<
class Iterator,
class distance_type>
46 Iterator
element_uar(Iterator first, distance_type size)
50 std::advance(p, dist);
66 inline double log_sum(
double n1,
double n2)
79 return n1 + log(1.0 + exp(n2-n1));
94 inline double log_sum(
double n1,
double n2,
double n3)
109 return n1 + log(1.0 + exp(n2-n1) + exp(n3 - n1));
123 template<
class Iterator>
135 double pi = *std::max_element(first, last);
139 for(; first != last; first++)
141 accum += exp(*first - pi);
143 return pi + log(accum);
166 return n2 + log(exp(n2-n1) - 1);
Matrix log_normalize_rows(const Matrix &mat)
normalize the rows of a stochastic matrix in log space
Definition: prob_util.cpp:60
Vector log_normalize(const Vector &vec)
normalize a probability vector in log space
Definition: prob_util.cpp:15
double log_diff(double n1, double n2)
Definition: prob_util.h:155
Vector sample(const MV_gaussian_distribution &dist)
Sample from a multivariate normal distribution.
Definition: prob_sample.cpp:42
double dist(const pt a, const pt b)
compute approx. Great Circle distance between two UTM points
Definition: layer.cpp:45
Vector log_marginalize_over_rows(const Matrix &mat)
marginalize across the rows of a matrix of log probabilities
Definition: prob_util.cpp:73
for I
Definition: APPgetLargeConnectedEdges.m:141
Vector exponentiate(const Vector &vec)
elementwise exponentiate a vector without normalizing
Definition: prob_util.cpp:26
Vector log_normalize_and_exponentiate(const Vector &vec)
normalize and exponentiate a vector of unnormalized log probabilities
Definition: prob_util.cpp:36
void swap(kjb::Gsl_Multimin_fdf &m1, kjb::Gsl_Multimin_fdf &m2)
Swap two wrapped multimin objects.
Definition: gsl_multimin.h:693
Iterator element_uar(Iterator first, distance_type size)
Pick an element uniformly at random (UAR) from a sequence, represented by a beginning iterator and a ...
Definition: prob_sample.h:228
double log_sum(double n1, double n2)
Definition: prob_util.h:66
Vector log_marginalize_over_cols(const Matrix &mat)
marginalize down the columns of a matrix of log probabilities
Definition: prob_util.cpp:85