13 #ifndef INCLUDED_NUMERIC_PROB_UTIL_hh
14 #define INCLUDED_NUMERIC_PROB_UTIL_hh
26 template <
class InputIterator>
27 double sum(InputIterator
first, InputIterator last) {
29 for ( ; first != last; ++
first ) {
36 template <
class InputIterator>
38 const double div =
sum(first, last);
39 for ( ; first != last; ++
first ) {
45 template <
class RandomAccessIterator>
48 for ( RandomAccessIterator i = first + 1; i != last; ++i ) {
55 template <
class ForwardIterator>
56 void product(ForwardIterator probs1_first, ForwardIterator probs1_last,
57 ForwardIterator probs2_first, ForwardIterator probs2_last) {
61 ForwardIterator i = probs1_first;
62 ForwardIterator j = probs2_first;
63 for ( ; i != probs1_last; ++i, ++j ) {
80 #endif // NUMERIC_PROB_UTIL_hh_
void cumulative(RandomAccessIterator first, RandomAccessIterator last)
Converts pdf to cdf.
void print_probabilities(const utility::vector1< double > &probs, std::ostream &out)
Writes probs to the specified ostream.
void normalize(InputIterator first, InputIterator last)
Normalizes elements on the range [first, last)
void product(ForwardIterator probs1_first, ForwardIterator probs1_last, ForwardIterator probs2_first, ForwardIterator probs2_last)
Multiplies two probability vectors with one another. Probability vectors are assumed to have equal le...
vector1: std::vector with 1-based indexing
double sum(InputIterator first, InputIterator last)
Returns the sum of all elements on the range [first, last)
void read_probabilities_or_die(const std::string &filename, utility::vector1< double > *probs)
Loads normalized, per-residue probabilities from filename, storing the result in probs. Assumes line i holds the probability of sampling residue i. There must be 1 line for each residue in the pose on which this data will be used.