7 #ifndef JADE_COV2NWK_HPP__
8 #define JADE_COV2NWK_HPP__
10 #include "jade.neighbor_joining.hpp"
11 #include "jade.verification.hpp"
19 template <
typename TValue>
34 const matrix_type c (in);
37 verification_type::validate_c(c);
39 const auto rk = c.get_height();
40 const auto k = rk + 1;
42 matrix_type padded_c (k, k);
43 for (
size_t i = 0; i < rk; i++)
44 for (
size_t j = 0; j < rk; j++)
45 padded_c(i + 1, j + 1) = c(i, j);
47 matrix_type distances (k, k);
48 for (
size_t i = 0; i < k; i++)
50 const auto c_ii = padded_c(i, i);
51 for (
size_t j = 0; j < k; j++)
53 const auto c_jj = padded_c(j, j);
54 const auto c_ij = padded_c(i, j);
55 distances(i, j) = c_ii + c_jj - c_ij - c_ij;
60 const algorithm_type algorithm (distances);
68 #endif // JADE_COV2NWK_HPP__