コード例 #1
0
	double backtracking(uvec & sequence) {
		sequence.set_size(observations.n_cols);
		uword index;
		double best_likelihood = v.max(index);
//		cout << index << endl;
		sequence[backtrack.n_cols - 1] = index;
		for (int t = backtrack.n_cols - 2; t >= 0; t--) {
//			cout << "t=" << t << endl;
//			seq.print();
//			cout << "bt[t]=" << backtrack.unsafe_col(t)(seq[t + 1]) << endl;
//			cout << seq[t + 1] << endl;
//			cout << backtrack.col(t);
//			ivec r = backtrack.col(t);
//			seq[t] = r(seq[t + 1]);
			sequence[t] = backtrack.unsafe_col(t + 1)(sequence[t + 1]);
		}

		return best_likelihood;
	}