1 #ifndef LOCARNA_FIT_ON_OFF_HH 2 #define LOCARNA_FIT_ON_OFF_HH 15 typedef std::vector<double> numseq_t;
16 typedef std::vector<double>::size_type
size_type;
18 typedef long double pf_t;
34 std::vector<std::vector<pf_t> > v;
36 std::vector<std::vector<bool> > t;
38 std::vector<bool> trace;
50 FitOnOff(numseq_t &x_,
double delta_01_,
double delta_10_,
double beta_)
51 : delta_01(delta_01_),
57 v[0].resize(x.size()+1);
58 v[1].resize(x.size()+1);
61 t[0].resize(x.size()+1);
62 t[1].resize(x.size()+1);
63 trace.resize(x.size()+1);
65 exp_delta_01 = exp(-beta*delta_01);
66 exp_delta_10 = exp(-beta*delta_10);
78 viterbi(
double c0,
double c1,
bool traceback);
103 std::pair<double,double>
123 print_table(
const std::string &name,
const std::vector<bool> &v)
const;
132 print_table(
const std::string &name,
const std::vector<pf_t> &v)
const;
146 #endif //LOCARNA_FIT_ON_OFF_HH std::pair< double, double > optimize(double c0, double c1)
Definition: fitonoff.cc:101
void print_tables() const
Definition: fitonoff.cc:270
double viterbi(double c0, double c1, bool traceback)
Definition: fitonoff.cc:15
void write_viterbi_path(std::ostream &out, double c0, double c1) const
writes the viterbi path
Definition: fitonoff.cc:213
void write_viterbi_path_compact(std::ostream &out, double c0, double c1)
writes the ranges in the viterbi path
Definition: fitonoff.cc:222
double best_once_on(double c0, double c1)
Definition: fitonoff.cc:41
size_t size_type
general size type
Definition: aux.hh:94
pf_t forward(double c0, double c1)
Definition: fitonoff.cc:88
void print_table(const std::string &name, const std::vector< bool > &v) const
Definition: fitonoff.cc:255
Definition: aligner.cc:17
Implements fitting of a two-step function to a number sequence.
Definition: fitonoff.hh:24
FitOnOff(numseq_t &x_, double delta_01_, double delta_10_, double beta_)
Definition: fitonoff.hh:50