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

cpp_n_annotations <- function(dag, unify = TRUE) {
    .Call(`_simona_cpp_n_annotations`, dag, unify)
}

cpp_n_annotations_with_intersect <- function(dag, anno_id) {
    .Call(`_simona_cpp_n_annotations_with_intersect`, dag, anno_id)
}

cpp_get_term_annotations <- function(dag, nodes) {
    .Call(`_simona_cpp_get_term_annotations`, dag, nodes)
}

cpp_get_annotated_terms <- function(dag, anno_id) {
    .Call(`_simona_cpp_get_annotated_terms`, dag, anno_id)
}

cpp_max_ancestor_v <- function(dag, nodes, v) {
    .Call(`_simona_cpp_max_ancestor_v`, dag, nodes, v)
}

cpp_max_ancestor_id <- function(dag, nodes, v, use_max_dist = TRUE) {
    .Call(`_simona_cpp_max_ancestor_id`, dag, nodes, v, use_max_dist)
}

cpp_max_ancestor_path_sum_value <- function(dag, nodes, v, addv, use_max_dist = TRUE) {
    .Call(`_simona_cpp_max_ancestor_path_sum_value`, dag, nodes, v, addv, use_max_dist)
}

cpp_longest_distances_from_LCA <- function(dag, nodes) {
    .Call(`_simona_cpp_longest_distances_from_LCA`, dag, nodes)
}

cpp_longest_distances_directed <- function(dag, nodes) {
    .Call(`_simona_cpp_longest_distances_directed`, dag, nodes)
}

cpp_shortest_distances_directed <- function(dag, nodes) {
    .Call(`_simona_cpp_shortest_distances_directed`, dag, nodes)
}

cpp_nearest_common_ancestor <- function(dag, nodes) {
    .Call(`_simona_cpp_nearest_common_ancestor`, dag, nodes)
}

cpp_shortest_distances_via_NCA <- function(dag, nodes) {
    .Call(`_simona_cpp_shortest_distances_via_NCA`, dag, nodes)
}

cpp_tpl_shortest_path_length <- function(dag, from, to) {
    .Call(`_simona_cpp_tpl_shortest_path_length`, dag, from, to)
}

cpp_tpl_longest_path_length <- function(dag, from, to) {
    .Call(`_simona_cpp_tpl_longest_path_length`, dag, from, to)
}

cpp_tpl_shortest_path <- function(dag, from, to) {
    .Call(`_simona_cpp_tpl_shortest_path`, dag, from, to)
}

cpp_tpl_longest_path <- function(dag, from, to) {
    .Call(`_simona_cpp_tpl_longest_path`, dag, from, to)
}

cpp_tpl_shortest_path_sum_value <- function(dag, from, to, value) {
    .Call(`_simona_cpp_tpl_shortest_path_sum_value`, dag, from, to, value)
}

cpp_tpl_longest_path_sum_value <- function(dag, from, to, value) {
    .Call(`_simona_cpp_tpl_longest_path_sum_value`, dag, from, to, value)
}

intersectToList_logical <- function(lt, x) {
    .Call(`_simona_intersectToList_logical`, lt, x)
}

cpp_partition_by_size <- function(tree, size) {
    .Call(`_simona_cpp_partition_by_size`, tree, size)
}

cpp_random_aggregatioin <- function(size, value, perm) {
    .Call(`_simona_cpp_random_aggregatioin`, size, value, perm)
}

cpp_node_pos_in_tree <- function(tree, bin_size, start = 1, end = 360) {
    .Call(`_simona_cpp_node_pos_in_tree`, tree, bin_size, start, end)
}

cpp_calc_n_neighbours <- function(x, range) {
    .Call(`_simona_cpp_calc_n_neighbours`, x, range)
}

cpp_reorder_by_score <- function(lt_children, score) {
    .Call(`_simona_cpp_reorder_by_score`, lt_children, score)
}

cpp_permutate_children <- function(lt_children) {
    .Call(`_simona_cpp_permutate_children`, lt_children)
}

cpp_get_force_counterpart <- function(lt_children_dag, lt_parents_dag, lt_children_tree, lt_parents_tree, root) {
    .Call(`_simona_cpp_get_force_counterpart`, lt_children_dag, lt_parents_dag, lt_children_tree, lt_parents_tree, root)
}

cpp_get_force <- function(lt_counterpart, x, depth, on_circle = FALSE) {
    .Call(`_simona_cpp_get_force`, lt_counterpart, x, depth, on_circle)
}

move_index <- function(x, sorted_od, k, decreasing = TRUE) {
    .Call(`_simona_move_index`, x, sorted_od, k, decreasing)
}

calc_x_offset <- function(children, prev_od, new_od, width) {
    .Call(`_simona_calc_x_offset`, children, prev_od, new_od, width)
}

reorder_children <- function(children, n_cp, force, width, depth, new_x, lt_children) {
    .Call(`_simona_reorder_children`, children, n_cp, force, width, depth, new_x, lt_children)
}

cpp_reorder_tree_x <- function(tree, lt_counterpart, x, width, times = 1L) {
    .Call(`_simona_cpp_reorder_tree_x`, tree, lt_counterpart, x, width, times)
}

n_links_from_two_groups_of_nodes <- function(dag, nodes1, nodes2) {
    .Call(`_simona_n_links_from_two_groups_of_nodes`, dag, nodes1, nodes2)
}

cpp_sim_aic <- function(dag, nodes, ic) {
    .Call(`_simona_cpp_sim_aic`, dag, nodes, ic)
}

cpp_sim_wang <- function(dag, nodes, contribution, correct = FALSE) {
    .Call(`_simona_cpp_sim_wang`, dag, nodes, contribution, correct)
}

cpp_wang_sv_to_sim <- function(sv) {
    .Call(`_simona_cpp_wang_sv_to_sim`, sv)
}

cpp_sim_wang_edge <- function(dag, nodes) {
    .Call(`_simona_cpp_sim_wang_edge`, dag, nodes)
}

cpp_sim_zhong <- function(dag, nodes, depth_via_LCA) {
    .Call(`_simona_cpp_sim_zhong`, dag, nodes, depth_via_LCA)
}

cpp_common_ancestor_mean_IC_XGraSM <- function(dag, nodes, ic) {
    .Call(`_simona_cpp_common_ancestor_mean_IC_XGraSM`, dag, nodes, ic)
}

cpp_common_ancestor_mean_IC_EISI <- function(dag, nodes, ic) {
    .Call(`_simona_cpp_common_ancestor_mean_IC_EISI`, dag, nodes, ic)
}

cpp_sim_ancestor <- function(dag, nodes) {
    .Call(`_simona_cpp_sim_ancestor`, dag, nodes)
}

cpp_ic_meng <- function(dag, correct) {
    .Call(`_simona_cpp_ic_meng`, dag, correct)
}

cpp_ic_wang <- function(dag, contribution) {
    .Call(`_simona_cpp_ic_wang`, dag, contribution)
}

cpp_max_leaves_id <- function(dag, nodes, v) {
    .Call(`_simona_cpp_max_leaves_id`, dag, nodes, v)
}

cpp_ancestors <- function(dag, node, include_self = FALSE) {
    .Call(`_simona_cpp_ancestors`, dag, node, include_self)
}

cpp_ancestors_within_background <- function(dag, node, background, include_self = FALSE) {
    .Call(`_simona_cpp_ancestors_within_background`, dag, node, background, include_self)
}

cpp_offspring <- function(dag, node, include_self = FALSE) {
    .Call(`_simona_cpp_offspring`, dag, node, include_self)
}

cpp_all_offspring <- function(dag, include_self = FALSE) {
    .Call(`_simona_cpp_all_offspring`, dag, include_self)
}

cpp_offspring_within_background <- function(dag, node, background, include_self = FALSE) {
    .Call(`_simona_cpp_offspring_within_background`, dag, node, background, include_self)
}

cpp_connected_leaves <- function(dag, node) {
    .Call(`_simona_cpp_connected_leaves`, dag, node)
}

cpp_n_ancestors <- function(dag, include_self = FALSE) {
    .Call(`_simona_cpp_n_ancestors`, dag, include_self)
}

cpp_n_ancestors_on_tree <- function(dag, include_self = FALSE) {
    .Call(`_simona_cpp_n_ancestors_on_tree`, dag, include_self)
}

cpp_n_offspring <- function(dag, include_self = FALSE) {
    .Call(`_simona_cpp_n_offspring`, dag, include_self)
}

cpp_n_offspring_on_tree <- function(dag, include_self = FALSE) {
    .Call(`_simona_cpp_n_offspring_on_tree`, dag, include_self)
}

cpp_n_offspring_with_intersect <- function(dag, nodes, include_self = FALSE) {
    .Call(`_simona_cpp_n_offspring_with_intersect`, dag, nodes, include_self)
}

cpp_n_leaves <- function(dag) {
    .Call(`_simona_cpp_n_leaves`, dag)
}

cpp_n_leaves_on_tree <- function(dag) {
    .Call(`_simona_cpp_n_leaves_on_tree`, dag)
}

cpp_ancestors_of_a_group <- function(dag, nodes, type = 1L, include_self = FALSE) {
    .Call(`_simona_cpp_ancestors_of_a_group`, dag, nodes, type, include_self)
}

cpp_ancestors_of_two_groups <- function(dag, nodes1, nodes2, type, include_self = FALSE) {
    .Call(`_simona_cpp_ancestors_of_two_groups`, dag, nodes1, nodes2, type, include_self)
}

cpp_offspring_of_a_group <- function(dag, nodes, include_self = FALSE) {
    .Call(`_simona_cpp_offspring_of_a_group`, dag, nodes, include_self)
}

cpp_offspring_aggregate <- function(dag, value, method = 1L) {
    .Call(`_simona_cpp_offspring_aggregate`, dag, value, method)
}

cpp_is_reachable <- function(dag, nodes, directed = FALSE) {
    .Call(`_simona_cpp_is_reachable`, dag, nodes, directed)
}

cpp_dag_depth <- function(dag) {
    .Call(`_simona_cpp_dag_depth`, dag)
}

cpp_dag_dist_from_root <- function(dag) {
    .Call(`_simona_cpp_dag_dist_from_root`, dag)
}

cpp_dag_longest_dist_to_offspring <- function(dag, from_node, l_background = logical(0)) {
    .Call(`_simona_cpp_dag_longest_dist_to_offspring`, dag, from_node, l_background)
}

cpp_dag_shortest_dist_to_offspring <- function(dag, from_node, l_background = logical(0)) {
    .Call(`_simona_cpp_dag_shortest_dist_to_offspring`, dag, from_node, l_background)
}

cpp_dag_height <- function(dag) {
    .Call(`_simona_cpp_dag_height`, dag)
}

cpp_dag_dist_to_leaves <- function(dag) {
    .Call(`_simona_cpp_dag_dist_to_leaves`, dag)
}

cpp_dag_longest_dist_from_ancestors <- function(dag, to_node, l_background = logical(0)) {
    .Call(`_simona_cpp_dag_longest_dist_from_ancestors`, dag, to_node, l_background)
}

cpp_dag_shortest_dist_from_ancestors <- function(dag, to_node, l_background = logical(0)) {
    .Call(`_simona_cpp_dag_shortest_dist_from_ancestors`, dag, to_node, l_background)
}

cpp_check_cyclic_node <- function(dag, node = -1L) {
    .Call(`_simona_cpp_check_cyclic_node`, dag, node)
}

cpp_dag_shortest_path_to_offspring_sum_value <- function(dag, from_node, value, l_background = logical(0)) {
    .Call(`_simona_cpp_dag_shortest_path_to_offspring_sum_value`, dag, from_node, value, l_background)
}

cpp_mark_tree_links <- function(dag) {
    .Call(`_simona_cpp_mark_tree_links`, dag)
}

cpp_tree_lt_parents_from_children <- function(lt_children) {
    .Call(`_simona_cpp_tree_lt_parents_from_children`, lt_children)
}

cpp_match_index <- function(ind1, ind2) {
    .Call(`_simona_cpp_match_index`, ind1, ind2)
}

cross_sum <- function(x) {
    .Call(`_simona_cross_sum`, x)
}

cross_multiply <- function(x) {
    .Call(`_simona_cross_multiply`, x)
}

cross_minus <- function(x) {
    .Call(`_simona_cross_minus`, x)
}

cross_max <- function(x) {
    .Call(`_simona_cross_max`, x)
}

cross_min <- function(x) {
    .Call(`_simona_cross_min`, x)
}

