# Generated by using Rcpp::compileAttributes() -> do not edit by hand
# Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393

ClusterTable_new <- function(phylo) {
    .Call(`_TreeTools_ClusterTable_new`, phylo)
}

ClusterTable_matrix <- function(xp) {
    .Call(`_TreeTools_ClusterTable_matrix`, xp)
}

ClusterTable_decode <- function(xp) {
    .Call(`_TreeTools_ClusterTable_decode`, xp)
}

ape_neworder_phylo <- function(n_tips, parent, child, n_edges, order) {
    .Call(`_TreeTools_ape_neworder_phylo`, n_tips, parent, child, n_edges, order)
}

ape_neworder_pruningwise <- function(n_tips, n_node, parent, child, n_edges) {
    .Call(`_TreeTools_ape_neworder_pruningwise`, n_tips, n_node, parent, child, n_edges)
}

as_newick <- function(edge) {
    .Call(`_TreeTools_as_newick`, edge)
}

split_frequencies <- function(trees) {
    .Call(`_TreeTools_split_frequencies`, trees)
}

consensus_tree <- function(trees, p) {
    .Call(`_TreeTools_consensus_tree`, trees, p)
}

descendant_edges <- function(parent, child, postorder) {
    .Call(`_TreeTools_descendant_edges`, parent, child, postorder)
}

descendant_edges_single <- function(parent, child, postorder, edge_index, include_self = TRUE) {
    .Call(`_TreeTools_descendant_edges_single`, parent, child, postorder, edge_index, include_self)
}

descendant_tips <- function(parent, child, postorder) {
    .Call(`_TreeTools_descendant_tips`, parent, child, postorder)
}

splits_to_char <- function(membership, labels) {
    .Call(`_TreeTools_splits_to_char`, membership, labels)
}

first_matching_split_pair <- function(x, table) {
    .Call(`_TreeTools_first_matching_split_pair`, x, table)
}

first_matching_split_index <- function(x, table) {
    .Call(`_TreeTools_first_matching_split_index`, x, table)
}

num_to_parent <- function(n, nTip) {
    .Call(`_TreeTools_num_to_parent`, n, nTip)
}

random_parent <- function(nTip, seed) {
    .Call(`_TreeTools_random_parent`, nTip, seed)
}

edge_to_num <- function(parent, child, nTip) {
    .Call(`_TreeTools_edge_to_num`, parent, child, nTip)
}

edge_to_mixed_base <- function(parent, child, nTip) {
    .Call(`_TreeTools_edge_to_mixed_base`, parent, child, nTip)
}

mixed_base_to_parent <- function(n, nTip) {
    .Call(`_TreeTools_mixed_base_to_parent`, n, nTip)
}

kept_vertices <- function(edge, kept) {
    .Call(`_TreeTools_kept_vertices`, edge, kept)
}

minimum_spanning_tree <- function(order) {
    .Call(`_TreeTools_minimum_spanning_tree`, order)
}

n_cherries_wrapper <- function(parent, child, nTip) {
    .Call(`_TreeTools_n_cherries_wrapper`, parent, child, nTip)
}

node_depth_unrooted <- function(parent, child, postorder, shortest) {
    .Call(`_TreeTools_node_depth_unrooted`, parent, child, postorder, shortest)
}

path_lengths <- function(edge, weight, init_nas) {
    .Call(`_TreeTools_path_lengths`, edge, weight, init_nas)
}

renumber_tips_batch <- function(trees, perm, n_tip, new_labels) {
    .Call(`_TreeTools_renumber_tips_batch`, trees, perm, n_tip, new_labels)
}

cpp_edge_to_splits <- function(edge, order, nTip) {
    .Call(`_TreeTools_cpp_edge_to_splits`, edge, order, nTip)
}

duplicated_splits <- function(splits, fromLast) {
    .Call(`_TreeTools_duplicated_splits`, splits, fromLast)
}

mask_splits <- function(x) {
    .Call(`_TreeTools_mask_splits`, x)
}

not_splits <- function(x) {
    .Call(`_TreeTools_not_splits`, x)
}

xor_splits <- function(x, y) {
    .Call(`_TreeTools_xor_splits`, x, y)
}

and_splits <- function(x, y) {
    .Call(`_TreeTools_and_splits`, x, y)
}

or_splits <- function(x, y) {
    .Call(`_TreeTools_or_splits`, x, y)
}

split_consistent <- function(needle, haystacks, invert) {
    .Call(`_TreeTools_split_consistent`, needle, haystacks, invert)
}

thin_splits <- function(splits, drop) {
    .Call(`_TreeTools_thin_splits`, splits, drop)
}

pack_splits_logical <- function(x) {
    .Call(`_TreeTools_pack_splits_logical`, x)
}

pack_splits_logical_vec <- function(x) {
    .Call(`_TreeTools_pack_splits_logical_vec`, x)
}

cpp_count_splits <- function(edge, nTip) {
    .Call(`_TreeTools_cpp_count_splits`, edge, nTip)
}

normalize_splits <- function(splits, n_tip) {
    .Call(`_TreeTools_normalize_splits`, splits, n_tip)
}

splits_to_edge <- function(splits, nTip) {
    .Call(`_TreeTools_splits_to_edge`, splits, nTip)
}

tips_in_splits <- function(splits) {
    .Call(`_TreeTools_tips_in_splits`, splits)
}

edge_to_rooted_shape <- function(parent, child, nTip) {
    .Call(`_TreeTools_edge_to_rooted_shape`, parent, child, nTip)
}

rooted_shape_to_edge <- function(shape, nTip) {
    .Call(`_TreeTools_rooted_shape_to_edge`, shape, nTip)
}

