A mixture of distributions. More...
#include <bsta_mixture.h>
Classes | |
struct | component |
A struct to hold the component distributions and weights. More... | |
class | sort_adaptor |
This adaptor allows users to define ordering functors on the components without accessing the components directly. More... | |
class | sort_weight |
This functor is used by default for sorting with STL. More... | |
Public Types | |
enum | { max_components = 0 } |
typedef dist_ | dist_type |
typedef dist_type | component_type |
enum | |
The dimension of the distribution. More... | |
typedef dist_::math_type | math_type |
The type used for calculations. | |
typedef vnl_vector_fixed < math_type, dimension > | vector_type |
The type used for a n-dimensional vector of math types. | |
typedef vector_type | field_type |
for compatibility with vpdl/vpdt. | |
Public Member Functions | |
bsta_mixture () | |
bsta_mixture (const bsta_mixture< dist_ > &other) | |
~bsta_mixture () | |
bsta_mixture< dist_ > & | operator= (const bsta_mixture< dist_ > &rhs) |
Assignment operator. | |
unsigned int | num_components () const |
Return the number of components in the mixture. | |
const dist_ & | distribution (unsigned int index) const |
Access (const) a component distribution of the mixture. | |
dist_ & | distribution (unsigned int index) |
Access a component distribution of the mixture. | |
T | weight (unsigned int index) const |
Return the weight of a component in the mixture. | |
void | set_weight (unsigned int index, const T &w) |
Set the weight of a component in the mixture. | |
bool | insert (const dist_ &d, const T &weight=T(0)) |
Insert a new component at the end of the vector. | |
void | remove_last () |
Remove the last component in the vector. | |
T | prob_density (const vector_ &pt) const |
Compute the probability density at this point. | |
T | probability (const vector_ &min_pt, const vector_ &max_pt) const |
The probability integrated over a box. | |
void | normalize_weights () |
Normalize the weights of the components to add to 1. | |
void | sort () |
Sort the components in order of decreasing weight. | |
template<class comp_type_ > | |
void | sort (comp_type_ comp) |
Sort the components using any StrictWeakOrdering function. | |
template<class comp_type_ > | |
void | sort (comp_type_ comp, unsigned int idx) |
vector_ | sample (vnl_random &rng) const |
sample from the mixture. | |
Private Types | |
typedef dist_::math_type | T |
typedef dist_::vector_type | vector_ |
Private Attributes | |
vcl_vector< component * > | components_ |
The vector of components. |
A mixture of distributions.
Definition at line 27 of file bsta_mixture.h.
typedef dist_type bsta_mixture< dist_ >::component_type |
Definition at line 32 of file bsta_mixture.h.
typedef dist_ bsta_mixture< dist_ >::dist_type |
Definition at line 31 of file bsta_mixture.h.
typedef vector_type bsta_distribution< dist_::math_type , n >::field_type [inherited] |
for compatibility with vpdl/vpdt.
Definition at line 29 of file bsta_distribution.h.
typedef dist_::math_type bsta_distribution< dist_::math_type , n >::math_type [inherited] |
The type used for calculations.
Definition at line 25 of file bsta_distribution.h.
typedef dist_::math_type bsta_mixture< dist_ >::T [private] |
Definition at line 37 of file bsta_mixture.h.
typedef dist_::vector_type bsta_mixture< dist_ >::vector_ [private] |
Definition at line 38 of file bsta_mixture.h.
typedef vnl_vector_fixed<math_type,dimension> bsta_distribution< dist_::math_type , n >::vector_type [inherited] |
The type used for a n-dimensional vector of math types.
Definition at line 27 of file bsta_distribution.h.
anonymous enum [inherited] |
The dimension of the distribution.
Definition at line 23 of file bsta_distribution.h.
anonymous enum |
Definition at line 34 of file bsta_mixture.h.
bsta_mixture< dist_ >::bsta_mixture | ( | ) | [inline] |
Definition at line 90 of file bsta_mixture.h.
bsta_mixture< dist_ >::bsta_mixture | ( | const bsta_mixture< dist_ > & | other | ) | [inline] |
Definition at line 93 of file bsta_mixture.h.
bsta_mixture< dist_ >::~bsta_mixture | ( | ) | [inline] |
Definition at line 103 of file bsta_mixture.h.
const dist_& bsta_mixture< dist_ >::distribution | ( | unsigned int | index | ) | const [inline] |
Access (const) a component distribution of the mixture.
Definition at line 129 of file bsta_mixture.h.
dist_& bsta_mixture< dist_ >::distribution | ( | unsigned int | index | ) | [inline] |
Access a component distribution of the mixture.
Definition at line 133 of file bsta_mixture.h.
bool bsta_mixture< dist_ >::insert | ( | const dist_ & | d, |
const T & | weight = T(0) |
||
) | [inline] |
Insert a new component at the end of the vector.
Definition at line 144 of file bsta_mixture.h.
void bsta_mixture< dist_ >::normalize_weights | ( | ) | [inline] |
Normalize the weights of the components to add to 1.
Definition at line 173 of file bsta_mixture.h.
unsigned int bsta_mixture< dist_ >::num_components | ( | ) | const [inline] |
Return the number of components in the mixture.
Definition at line 126 of file bsta_mixture.h.
bsta_mixture<dist_>& bsta_mixture< dist_ >::operator= | ( | const bsta_mixture< dist_ > & | rhs | ) | [inline] |
Assignment operator.
Definition at line 111 of file bsta_mixture.h.
T bsta_mixture< dist_ >::prob_density | ( | const vector_ & | pt | ) | const [inline] |
Compute the probability density at this point.
Definition at line 152 of file bsta_mixture.h.
T bsta_mixture< dist_ >::probability | ( | const vector_ & | min_pt, |
const vector_ & | max_pt | ||
) | const [inline] |
The probability integrated over a box.
Definition at line 163 of file bsta_mixture.h.
void bsta_mixture< dist_ >::remove_last | ( | ) | [inline] |
Remove the last component in the vector.
Definition at line 148 of file bsta_mixture.h.
vector_ bsta_mixture< dist_ >::sample | ( | vnl_random & | rng | ) | const [inline] |
sample from the mixture.
randomly selects a component wrt normalized component weights, then for now returns the mean of the selected component
first normalize the weights (this is const methods so we cannot call the class-method normalize_weights().
Definition at line 205 of file bsta_mixture.h.
void bsta_mixture< dist_ >::set_weight | ( | unsigned int | index, |
const T & | w | ||
) | [inline] |
Set the weight of a component in the mixture.
Definition at line 140 of file bsta_mixture.h.
void bsta_mixture< dist_ >::sort | ( | ) | [inline] |
Sort the components in order of decreasing weight.
Definition at line 185 of file bsta_mixture.h.
void bsta_mixture< dist_ >::sort | ( | comp_type_ | comp | ) | [inline] |
Sort the components using any StrictWeakOrdering function.
The prototype should be
template <class T> bool functor(const bsta_distribution<T>& d1, const T& w1, const bsta_distribution<T>& d2, const T& w2);
Definition at line 195 of file bsta_mixture.h.
void bsta_mixture< dist_ >::sort | ( | comp_type_ | comp, |
unsigned int | idx | ||
) | [inline] |
Definition at line 199 of file bsta_mixture.h.
T bsta_mixture< dist_ >::weight | ( | unsigned int | index | ) | const [inline] |
Return the weight of a component in the mixture.
Definition at line 137 of file bsta_mixture.h.
vcl_vector<component*> bsta_mixture< dist_ >::components_ [private] |
The vector of components.
Definition at line 86 of file bsta_mixture.h.