Crate dsalgo Copy item path  Source  abs_diff  accumulate_iterator  accumulate_vec  adaptive_heap_sort   add_middle_nodes_and_make_double_tree_undirected_tuple_edges          add_with_xor_and_bitwise_and      addressable_heap  adjacency_list_graph_from_edges     adjacency_list_graph_from_edges_weighted      adjacency_list_graph_old    adjacency_list_graph_with_edge_id_from_edges        adjacency_list_to_directed_edges     adjacency_matrix_graph   af_heap aho_corasick  algebraic_structure  algebraic_structure_impl   algebraic_structure_std   all_pairs_shortest_path    all_pairs_xor_sum    analysis analysis_root_finding   Analysis Root Finding Algorithm
for given f(x), find x such that f(x) = 0 analysis_search  apsp_johnson_dense   apsp_johnson_sparse   arborescence Minimum Spanning Arborescence argmax argmin argsort arithmetic_series_with_diff    arithmetic_series_with_last    array_compression_unique_binary_search     array_rank_with_argsort    similar to array_compression_with_argsort.rs
but each rank is unique.
if same value, sort by original index. articulation_point  articulation_points_detection_chain_decomposition     articulation_points_detection_lowlink    ascii_characters  automorphism auxiliary_tree  avl_array  avl_tree  avl_tree_array   avl_tree_ngtkn   avl_tree_node_with_box_recurse_merge_split_based         avl_tree_node_with_key_value_size_box_recurse         avl_tree_node_with_rc_refcell_merge_split_based_recurse          avl_tree_node_with_value_size_box_recurse        avl_tree_ordered_multiset    avl_tree_ordered_multiset_merge_split_based       avl_tree_ordered_multiset_merge_split_based_rc_refcell         b_plus_tree   b_star_tree   balanced_tree  ball_tree  barrett_reduction  base_conversion_base_k_to_decimal      base_conversion_decimal_to_base_k_with_divmod        base_conversion_decimal_to_base_k_with_euclid_divrem         batcher_odd_even_mergesort    bdd bead_sort  beatty_sequence  bellman_ford_abstract_dp    bellman_ford_dense   bellman_ford_shortest_path_tree     bellman_ford_sssp_option_i64_with_negative_cycle_error         bellman_ford_sssp_tuple_edges_no_error_with_inf_i64          bellman_ford_sssp_tuple_edges_no_error_with_inf_i64_with_abstract            bfs_01_priority_queue    bfs_on_sparse_graph_in_degree_oriented       bfs_on_sparse_graph_in_degree_oriented_with_data         bidirected_graph  bijection bin_count  binary_decision_diagram   binary_function  binary function binary_greatest_common_divisor_u64     binary_heap  binary_heap_std_impl_priority_queue      binary_min_heap_0_indexed     binary_min_heap_impl_priority_queue      binary_relation  binary_search_2_ok_usize     for sequence, see crate::binary_search_on_sequence. binary_search_f64_with_max_epoch      binary_search_f64_with_terminate_func      binary_search_ng_ok_i64     for sequence, see crate::binary_search_on_sequence. binary_search_numeric   binary_search_on_slice_bisection_of_2_ok        binary_search_on_slice_bisection_of_ng_ok        binary_space_partitioning   binary_tree  binary_tree_node   binomial_heap  bisection_analysis  bit_array  bit_length_binary_search_u64     bit_length_naive_u64    bit_length_primitive   bit_length_table   bit_length_with_count_leading_zeros_u64       bit_length_with_count_leading_zeros_u128       bit_length_with_count_leading_zeros_usize       bit_reverse_divide_and_conquer_butterfly_usize       bit_reverse_with_std_usize     bit_set bit_vector  bitonic_sort  bitops bits_mask_less_than    bits_mask_range   bk_tree block_cut_tree   block_sort  bool_to_int   borsuk_ulam  breadth_first_search_tree_from_adjacency_list       return undirected edges
input: bidirected adjacency list (undirected graph)
output: undirected edges [(u, v)] u < v. (but not sorted vertically)
(deal with no given priority between u and v, and among edges.) breadth_first_search_tree_from_edges      make a bfs tree from given undirected csgraph edges.
return added flagged boolean result.
if the given graph is not connected,
make a bfs tree for the connected component containing source node. brent_cycle_detection   bridge_finding  bsp btree_multiset  bubble_sort  bucket_sort  bucket_sort_make_argument_left_table      bucket_sort_make_argument_right_table      burn_embed  bx_tree bytes_to_char_vec    cache_oblivious_distributing_sort    cached_fibonacci_number   caesar_cipher  carmichael_theorem  cartesian_coordinates_trait   cartesian_product  cartesian_tree  cascade_merge_sort   catalan_number_with_formula_modular_with_factorial_tables_usize         catalan_number_with_formula_modular_with_instant_choose_fn_usize          catalan_numbers_constant   catalan_numbers_table_modular_usize_with_dp       category category_theory  ceil_division_i64   ceil_square_root_u64    center_nodes_of_tree    find a pair of center nodes of the given unweited tree graph.
if tree diameter is even
or number of nodes in the path is odd,
two center nodes are same. centroid_decomposition  change_max  change_min  chebyshev_distance_2d_i64    chebyshev_distance_ndim_i64    check_compressed_sparse_graph_is_sorted      check_two_circles_intersection    chinese_postman_problem   chinese_remainder_theorem   chinese_remainder_theorem_extended_euclidean_gcd_coprime_i64        chinese_remainder_theorem_extended_euclidean_gcd_coprime_usize        chinese_remainder_theorem_extended_euclidean_gcd_i64       chinese_remainder_theorem_extended_euclidean_gcd_prod_i64        chinese_remainder_theorem_extended_euclidean_gcd_prod_i64_direct         chinese_remainder_theorem_extended_euclidean_gcd_prod_usize        chinese_remainder_theorem_extended_euclidean_gcd_safe_i64        chinese_remainder_theorem_extended_euclidean_gcd_safe_usize        chinese_remainder_theorem_extended_euclidean_gcd_usize       chinese_remainder_theorem_garner_algorithm_i64      chinese_remainder_theorem_garner_algorithm_with_mod_i64        choose cht chu_liu_edmonds_minimum_spanning_arborescence      cipolla_algorithm  circle_2d_cartesian_i64    circle_dividing  circle_hough_transform   circular_buffer_deque   circular_buffer_queue   closest_pair_points   cmp cocktail_shaker_sort   collection collection_macro  comb_sort  combination_choose  combination_from_u64   combinatorics comparison_sort  complete_digraph  complete_graph  complete_permutations  complex_number  complex_number_f64   complex_number_polar_form_f64     composition_category_theory   compressed_sparse_graph_from_dense_with_inf       compressed_sparse_graph_from_edges     connected_components  connected_components_bfs   compute connected components on undirected graphs. connected_components_dfs   connected_components_dfs_recurse    connected_components_dsu   connected_components_group_by_id     connected_components_labels_to_groups     const_ascii_characters   const_generics_dimensional_geometric_vector     const_generics_dimensional_geometric_vector_i64      const_generics_modular_int_i64     const_generics_n_dim_dynamic_shaped_tensor       const_generics_ndim_vector    const_generics_shaped_matrix    const_generics_shaped_matrix_impl_semiring_with_std_ops         const_generics_shaped_matrix_with_flattened_data       const_generics_sized_square_matrix     const_generics_sized_square_matrix_impl_semiring_with_std_ops          const_generics_sized_square_matrix_on_usize_bitwise_xor_and          const_matrix_property_trait    const_modulus_frequent   const_modulus_trait   const_montmort_numbers_usize    const_square_matrix_property_trait     container convert_to_bool   convex_hull_monotone_chain    convex_hull_trick   convolution_with_discrete_fourier_transform_f64      convolution_with_fft_cooley_tukey_inplace_f64       convolution_with_fft_cooley_tukey_recurse_f64       coordinates_compression  count_common_subsequences   count_common_substrings   count_distinct_substrings   count_divisors_by_factorization    count_divisors_naive   count_leading_zeros   count_leading_zeros_std    count_subsequences  count_subset_sum   count_trailing_zeros_in_digits_double_factorial       count_trailing_zeros_in_digits_factorial_legendre       count_trailing_zeros_std    counting_argsort  counting_array_rank   counting_sort  cover_tree  crt cumulative_array  static range query for group like. cumulative_product_vec_with_std_mul      cut_vertex  cycle_detection_undirected_graph_union_find      cycle_nodes_detection_on_undirected_unicyclic_simple_graph_with_bfs          on undirected unicyclic simple graph.
detect each node is in the cycle or not. cycle_nodes_detection_on_undirected_unicyclic_simple_graph_with_dfs          dancing_link  dancing_tree  day_stout_warren   dearangement debug_macro  decision_tree  default default_static_modular_arithmetic    define_const_modulus_macro    define_const_modulus_with_const_generics_macro       define_static_modulus_macro_with_atomic_cell       deletion dense_graph_from_edges_with_inf      dense_graph_from_not_simple_edges_with_inf        manage minimum weigted edges. depth_first_search_tree_from_adjacency_list_recurse        depth_first_search_tree_from_edges_recurse       deque_with_2_stacks    dial_sortest_path   digits_sum  dijkstra_arborescence  dijkstra_dense_i64_with_inf     dijkstra_dense_option_u64    dijkstra_queue_binary_heap_std     dijkstra_shortest_path_count_modular_i64_with_inf_sparse         dijkstra_sparse  dijkstra_sparse_from_potential    dijkstra_sparse_general_extended    dijkstra_sparse_option   dijkstra_sparse_parents   dijkstra_sparse_path_count    dijkstra_sparse_predecessors   dijkstra_sparse_queue   dijkstra_sparse_tuple_edges_adjacency_list_i64_with_const_inf          dijkstra_sparse_tuple_edges_adjacency_list_i64_with_initial_dist          dijkstra_sparse_tuple_edges_adjacency_list_u64_with_inf         dijkstra_tree  directed_acyclic_word_graph    directed_lowlink  discrete_fourier_transform_f64    discrete_logarithm  dist_2d_to_the_power_of_2       distance_on_tree_query_with_lca_doubling       divisor divisor_function  divisor_function_table_naive    divisor_function_table_with_divisor_fast_zeta       divisor_function_table_with_divisor_zeta      divisors_count_from_prime_factors     divisors_from_prime_factors    divisors_sum_by_fatorization    divisors_sum_from_prime_factors     divisors_sum_table   divisors_table  divmod dlp double_ended_queue   double_factorial_table_from_i32     doubly_chained_tree   doubly_linked_list_deque    doubly_linked_list_node    dual_unbounded_subset_sum_min_count_item_oriented_with_inf          dual_unbounded_subset_sum_min_count_sum_oriented_with_inf          dynamic_array_queue   dynamic_matrix_property_trait    dynamic_modular_arithmetic_trait    dynamic_modulus  dynamic_modulus_trait   dynamic_shaped_matrix   dynamic_shaped_matrix_impl_reverse     dynamic_shaped_matrix_impl_rotate     dynamic_shaped_matrix_impl_semiring_with_std       dynamic_shaped_matrix_impl_transpose     dynamic_shaped_matrix_with_flattened_data      dynamic_sliding_window_maximum_queue_i64      dynamic_sliding_window_sum_deque_i64      dynamic_sqrt_bucket   dynamic_sqrt_bucket_multiset    dynamic_tensor  dynamic_tensor_shape   dynamic tensor shape for static tensor. edges_to_0_indexed    enumerate_combinations_bits_with_next_combination      enumerate_combinations_dfs   enumerate_combinations_dfs_recurse    enumerate_combinations_inplace_iterative    enumerate_cycles_of_functional_graph_with_bfs       enumerate_cycles_of_functional_graph_with_dfs_recurse        enumerate_divisors  enumerate_highly_composite_numbers_bigint_priority_search       enumerate_highly_composite_numbers_prime_factor_dp       enumerate_highly_composite_numbers_priority_search      enumerate_homogeneous_products_dfs_recurse     enumerate_homogeneous_products_inplace_iterative     enumerate_nodes_in_rectangle_static_offline_with_event_sort         enumerate_nodes_in_rectangle_static_with_1d_bisect        enumerate_nodes_in_rectangle_static_with_array_compression_bisect         enumerate_nodes_in_rectangle_static_with_kd_tree        enumerate_prime_factor_candidates_for_highly_composite_numbers        enumerate_repeated_products_dfs_recurse     enumerate_repeated_products_inplace_iterative     enumerate_stepping_numbers_between_with_bfs      enumerate_stepping_numbers_less_than_with_bfs       enumerate_subset_bits   eppstein_algorithm  ett euler tour teqnique euclidean_division_i64   euler_criterion  euler_jacobi_pseudo_prime    euler_phi_function   euler_phi_table_mobius_inversion_formula_divisor_fast_zeta_modint          euler_phi_table_mobius_inversion_formula_divisor_zeta_modint         euler_totient_function   related euler_totient_function_table_with_divisor_fast_mobius        euler_totient_function_table_with_divisor_mobius       euler_totient_function_table_with_multiplicative_divisor_fast_zeta         euler_totient_function_table_with_multiplicative_divisor_zeta        euler_totient_with_instant_prime_factorize      euler_totient_with_least_prime_factor_table_usize        euler_totient_with_trial_division_i64      euler_totient_with_trial_division_u64      euler_totient_with_trial_division_usize      euler_tour_edges   euler_tour_edges_recurse    euler_tour_nodes_direct    euler_tour_nodes_direct_recurse     euler_tour_nodes_from_edges     euler_tour_teqnique_as_struct     eulerian_circuit  eulerian_path  eulerian_trail  exchange_sort  exponential_tree  extended_euclidean_gcd_generic_int_recurse      extended_euclidean_gcd_i64    extended_euclidean_gcd_i64_recurse     extended_euclidean_modular_gcd_inverse_i64_with_extgcd        extended_euclidean_modular_gcd_inverse_u64_direct       extended_euclidean_modular_gcd_inverse_usize_with_extgcd        factorial factorial_table_from_i32    factorial_table_from_u64    factorial_tables_frequent_ops_from_i32      factorial_tables_frequent_ops_modular_usize      fairfield_ad_day_formula    farthest_node_on_unweighted_tree     farthest_node_query_on_unweigted_tree      find a farthest node from any node in O(1)
a farthest node from each node is one of the tree diameter terminals. fast_fourier_transform   fast_fourier_transform_bruun    fast_fourier_transform_cooley_tukey_inplace      Fast Fourier Transform
Cooley-Tukey’s Algorithm
Iterative Inplace fast_fourier_transform_cooley_tukey_inplace_recurse       fast_fourier_transform_cooley_tukey_recurse      Fast Fourier Transform
Cooley-Tukey’s Algorithm
Recurse fast_io_template   mainly used in competitive programming
template main function. fast_mobius_transform   fast_mobius_transform_for_divisors_additive_with_std        fast_mobius_transform_for_divisors_with_instant_func        fast_mobius_transform_for_multiples_additive_with_std        fast_mobius_transform_for_multiples_with_instant_func        fast_mobius_transform_for_subset     fast_mobius_transform_for_subset_additive_with_std        fast_mobius_transform_for_superset     fast_mobius_transform_for_superset_additive_with_std        fast_modulo_transform   fast_prime_factorize_large_numbers     fast_zeta_transform   fast_zeta_transform_for_divisors_additive_with_std        fast_zeta_transform_for_divisors_with_instant_func        fast_zeta_transform_for_multiples_additive_with_std        fast_zeta_transform_for_multiples_with_instant_func        fast_zeta_transform_for_subset     fast_zeta_transform_for_subset_additive_with_std        fast_zeta_transform_for_subset_additive_with_std_optim         fast_zeta_transform_for_superset     fast_zeta_transform_for_superset_additive_with_std        fenwick_tree  fenwick tree (binary indexed tree) fenwick_tree_2d   fenwick_tree_2d_abelian_group     fenwick_tree_2d_i64_add     fenwick_tree_2d_recurse    fenwick_tree_additive_abelian_group     fenwick_tree_additive_from_i32     fenwick_tree_dual_i64_add_1_indexed       interface is 0-indexed. fenwick_tree_dual_with_instance_abelian_group       fenwick_tree_dual_with_instance_commutative_monoid       fenwick_tree_dual_with_primal     fenwick_tree_dynamic_cumulative_sum_2_i64       cumulative sum of cumulative sum. fenwick_tree_dynamic_cumulative_sum_3_i64       cumulative sum of cumulative sum of cumulative sum. fenwick_tree_i32_add_0_indexed      fenwick_tree_i32_add_1_indexed      fenwick_tree_i64_gcd    fenwick_tree_min   fenwick_tree_multiset   fenwick_tree_multiset_impl_median     fenwick_tree_multiset_impl_min_max      fenwick_tree_range_add_range_sum_i64       fenwick_tree_usize_add_1_indexed      fenwick_tree_with_instance_abelian_group_1_indexed        fenwick_tree_with_instance_commutative_monoid_1_indexed        fenwick_tree_with_static_abelian_group_1_indexed        fenwick_tree_with_static_commutative_monoid_1_indexed        fenwick_tree_xor   fermat_factorization_method   fft fibonacci_heap  fibonacci_number  fibonacci_sequence_modular   field find_a_node_from_given_node_step_by_k_edges_on_tree            find_a_prime_factor_pollard_rho_brent       find_divisor_pollard_rho_repeat_brent      find_divisor_pollard_rho_with_brent_cycle_detection        find_divisor_pollard_rho_with_floyd_cycle_detection        find_divisors_constructive_with_prime_factorize_lpf_table        find_divisors_for_const_remainders     find_divisors_for_same_remainders     find_divisors_trial_division_u64     find_divisors_trial_division_usize     find_first_set   find_kth_permutation   find_kth_set_bit_by_removing_lsb       find_low_median_of_divisors     finger_tree  flat_nonzero_int   flat_nonzero_with_to_bool     inspired by numpy.flatnonzero flatten_2d_tournament_list_to_1d      float_absolute_error_check    float_relative_error_check    floor_division_i64   floor_square_root_u64    floyd_warshall_abstruct_with_ternary_map      floyd_warshall_apsp_i64_with_inf      floyd_warshall_apsp_option_i64     floyd_warshall_apsp_u64    fold ford_johnson_algorithm   formal_power_series   fourier_transform  fractal_tree_index   fraction_floor_sum   fraction_floor_sum_with_sqrt_split      fraction_floor_sum_with_sqrt_split_strict       fraction_i64  frobenius_endmorphism  functional_graph  functional_graph_basic_properties    functional_graph_doubling_table    functional_graph_kth_from    functional_graph_kth_from_any_with_doubling       from any node functional_graph_level_ancestor_with_doubling      functional_graph_prefix_aggregation    functional_graph_prefix_sum    gamma_function  garner_algorithm  gaussian_elimination_xor   gcd_convolution  gcd_convolution_ring_with_std_multiples_fast_zeta_mobius         gcd_convolution_ring_with_std_multiples_zeta_mobius        gcds_for_lcm   gcds_for_sum   general_dijkstra_sparse   general_number_field_sieve    generalized_greatest_common_divisor_trait     genetic_algorithm  geometric_series  geometric_vector_2d   geometric_vector_2d_f64    geometric_vector_2d_i64    geometric_vector_3d   geometry ghost_leg  gnfs gnome_sort  gradient_boostring  graph graph_bfs_abstract   graph_bfs_level   graph_bfs_path_count    graph_bfs_reachablity_from_any_of_multiple_nodes        bfs from multiple nodes in the same bfs. O(N + M) graph_disconnected  graph_edge_trait   graph_impl  graph_old  graph_pointer_directed   graph_pointer_mixed   graph_pointer_undirected   graph_trait_pointer_mixed    graphops greatest_common_divisor   greatest common divisor on integer gcd(a, b)
a, b \in \Z.
0 := identity element and empty product here.
gcd(0, 0) := 0
\prod_{\emptyset} := 0 greatest_common_divisor_euclid    greatest_common_divisor_euclidean    greatest_common_divisor_euclidean_recurse     greatest_common_divisor_euclidean_recurse_i64      greatest_common_divisor_euclidean_reduce     greatest_common_divisor_euclidean_signed     greatest_common_divisor_euclidean_u64     greatest_common_divisor_with_thomae_function      greatest_prime_factor_table_with_sieve_of_eratosthenes        greatest_prime_factor_with_least_prime_factor_usize        group_theory_id   hamming_distance  hash_tree  hcn heapsort heavly_light_decomposition   heavy light decomposition
an algorithm on undirected tree. heavy_light_decomposition_labeling_post_order_more_than_half         height highly_composite_numbers   hilbert_r_tree   histogram_sort  hld homogeneous_product  homomorphism hopcroft_karp  ida_star  identifier ikthrt impl_add_assign_from_add     impl_static_modulus_get_for_const_modulus       implicit_k_d_tree    index insertion insertion_sort  insertion_sort_enumerate_all_states     int_cube_root   int_kth_root_binary_search     int_kth_root_fast    int_kth_root_linear    int_kth_root_newton_method     integer_kth_root   integer_square_root   integer sqrt integer_square_root_digit_by_digit_recurse_u64        integer square root digit by digit recursive integer_square_root_digit_by_digit_u64       integer_square_root_linear_u64     integer square root with linear naive algorithm integer_square_root_with_binary_search_u64       integer square root with binary search integer_square_root_with_binary_search_usize       integer square root with binary search integer_square_root_with_linear_addition_u64       integer square root with addition integer_square_root_with_linear_subtraction_u64       linear with subtraction
reference
https://en.wikipedia.org/wiki/Integer_square_root integer_square_root_with_newton_method_u64       integer square root with newton’s method interpolation_sort  intersection_length_of_2_intervals     intersection_of_2_intervals    inverse_discrete_fourier_transform_f64     inverse_factorial_table_from_i32     inverse_factorial_table_from_u64     inversion_number_with_array_compression_and_fenwick_tree        Inversion (Descrete Math) io io_buffered_read_wrapper    io_locked_stdin_reader    io_locked_stdout_buffered_writer     io_read_stdin   io_read_stdin_direct    io_read_token   io_read_vec_macro    io_write_all_macro    io_write_vec_macro    is_absorbing  is_adjacency_matrix   is_arborescence  is_bipartite_graph   is_eulerian_graph   is_identity  is_invertible  is_multiple_of_9    is_multitree  is_pairwise_coprime_with_prime_factorize      is_pairwise_coprime_with_sum_of_multiple_count        is_perfect_number   is_polytree  is_prime_naive   is_prime_table_from_enumerate_primes      is_prime_with_small_prime_numbers      is_quadratic_residue   is_quadratic_residue_z_pz_euler_criterion       is_regular_graph   is_setwise_coprime   is_subsequence  is_twin_prime   is_undirected_dense_graph    isomorphism isqrt iterate_over_multiples_for_1_n_harmonic_series_abstract         iterate_over_multiples_for_primes_in_1_n_harmonic_series_abstract           iterative_deepening_a_star_algorithm     jacobi_symbol  jacobi_symbol_recurse   join k_d_tree   karatsuba_algorithm  karatsuba_mul_quotient_pow_2_power_of_2_128         kmp knapsack knapsack_01_dual_table_with_inf      knapsack_01_for_large_weights_with_dual       knapsack_01_table   knapsack_unbounded_table_bottom_up_max_value_oriented        knapsack_unbounded_table_item_oriented     knuth_morris_pratt   knuth_morris_pratt_failure_function_table_0_indexed        knuth_morris_pratt_failure_function_table_1_indexed        knuth_morris_pratt_find_all_substring_indices       knuth_yao_speedup   kth_node_query_on_tree     kth_node_query_on_tree_offline      find a node step by k edges from u for each query in offline label_bipartite_graph_with_bfs     add a pattern of labels to nodes in the bipartite graph (true/false)
if the given graph is not bipartite, return None las_vegas_algorithm   lazy_binary_heap_with_count_hash      lazy_binary_heap_with_remove_queue      lcm least common multiple lcm_convolution  lcm_convolution_ring_with_std_divisors_fast_zeta_mobius         lct least_common_multiple   least_common_multiple_with_gcd_i64      least_common_multiple_with_gcd_reduce_u64       least_common_multiple_with_gcd_u64      least_common_multiple_with_gcd_usize      least_prime_factor_table_with_sieve_of_eratosthenes_u32         least_significant_bit_from_lsb_number      least_significant_bit_number_direct_i64      least_significant_bit_number_from_lsb_usize       least_significant_bit_with_std_ctz_u64       leftist_tree  legendre_formula_recurse_u64    legendre_formula_recurse_usize    legendre_formula_u64   legendre_symbol  legendre_symbol_euler_criterion    level_ancestor_offline_with_dfs_recurse      level_ancestor_with_doubling    level ancestor on tree with doubing (or binary lifting) level_ancestor_with_doubling_from_parent_depth       not only tree, but accept all the functional graph like structure
with parent and depth for each node.
for example, unicyclic tree (each node in the cycle is root) is ok. levenstein_distance  levenstein_distance_low_memory    levenstein_distance_low_memory_inplace     library_sort  lightgbm line_segment_2d_i64    linear_hull  linear_prime_sieve_option_u32     linear_programming  linear_span  linear_time_minimum_spanning_tree     link_cut_tree   log_2_floor_u64    log_structured_merge_tree    logarithm_f64_for_any_base_with_log_e        logarithm_u64_floor_for_any_base_recursive       longest_common_prefix_array    longest_common_prefix_array_kasai     longest_common_subsequence   Longest Common Subsequence
not confused with Longest Common Substring longest_common_substring   longest_common_substring_find_all_ends      longest_common_substring_length_low_memory      longest_common_substring_length_low_memory_with_z_algorithm         longest_common_substring_table    longest_increasing_subsequece_naive_i64     longest_increasing_subsequence   longest_non_decreasing_sequence    longest_palindromic_substring   lower_bound_on_slice    lowest_common_ancestor_offline_tarjan     lowest_common_ancestor_old    lowest common ancestor lowest_common_ancestor_with_binary_lifting      lowlink lsm_tree  lucas_number  lucas_numbers_table   lucas_sequence  m_ary_tree   maclaurin_series  make_sparse_histogram   manacher matrix matrix_addition_i64   matrix_as_2d_vec    matrix_frequent  matrix_multiplication  matrix_multiplication_i64   matrix_rotate_counterclockwise_90    matrix_rotate_counterclockwise_270    matrix_subtraction_i64   matrix_transpose  matrix_transpose_with_option    matrix_with_static_property    matrix_with_static_property_define_bitwise_xor_and_usize         matrix_with_static_semiring_and_property      matrix_with_static_square_property_impl_semiring_with_std         maximal_clique  maximal_clique_for_small_adjacency_bits      maximum_cardinality_matching   maximum_flow  median_priority_queue_with_avl_multiset      median_priority_queue_with_fenwick_tree_multiset_for_small_usize          median_priority_queue_with_two_binary_heap       functionality
push arbitrary,
pop median
find median, median_priority_queue_with_two_lazy_binary_heap        median_priority_queue_with_two_std_btree_multiset        merge_insertion_sort   merge_sort_bottom_up    merge_sort_inplace   merge_sort_recurse   merge_two_sorted_slice_as_vec      merge_two_sorted_vec_taking     mergeable_heap  mergesort merkle_tree  metric_tree  min_max_linear_function_composition     deal with 3 kinds of composition queries.
f(x) := f(x) + a
f(x) := max(f(x), a)
f(x) := min(f(x), a) min_max_pq   min_max_priority_queue_lazy_with_two_binary_heap         min_max_priority_queue_with_btree_map       min_max_priority_queue_with_fenwick      minimum_cost_arborescence   minimum_cost_elastic_matching    minimum_pair_sum_for_const_product      minimum_spanning_tree   Minimum Spanning Tree
reexporting minimum_spanning_tree_boruvka    minimum_spanning_tree_kruskal    minimum_spanning_tree_prim_dense     minimum_spanning_tree_prim_sparse     minimum_spanning_tree_reverse_delete     mo_algorithm  mo_algorithm_3d   mobius_function  mobius_function_table_with_divisor_fast_mobius_isize        mobius_function_table_with_divisor_mobius_isize       mobius_function_with_trial_division     mobius_transform_for_divisors_additive_with_std       mobius_transform_for_divisors_with_instant_func       mobius_transform_for_multiples_additive_with_std       mobius_transform_for_multiples_with_instant_func       mobius_transform_for_subset    mobius_transform_for_subset_additive_with_std       mobius_transform_for_superset    mobius_transformation  modular modular_combination_choose_with_factorial_tables_usize       modular_cumprod_i64   modular_cumprod_usize   modular_division_i64   modular_factorial_table   modular_factorial_table_i64    modular_factorial_table_usize    modular_frequent  modular_int_with_arithmetic    modular_int_with_const_modulus_i64      modular_int_with_static_modulus     modular_int_with_static_modulus_i64      modular_inverse_euclidean_i64_no_error      modular_inverse_euclidean_u64    modular_inverse_euler_theorem_i64     modular_inverse_euler_theorem_u64     modular_inverse_factorial_table    modular_inverse_factorial_table_i64     modular_inverse_factorial_table_usize     modular_inverse_fermat_little_theorem_i32      well-known modular inverse algorithms.
inverse by Fermat’s Little Theorem.
for prime modulus. modular_inverse_of_2_for_odd_modulus       modular_inverse_power_of_2_table_for_odd_modulus_i64          modular_inverse_table_usize    modular_linear_equation_with_chinese_remainder_theorem_euclidean        modular_linear_equation_with_chinese_remainder_theorem_garner        modular_linear_equation_with_euler_theorem_i64       modular_linear_equation_with_extended_euclidean_gcd       modular_matrix_multiplication_karatsuba_i64     modular_mul_u128_with_add_doubling      modular_power_for_prime_usize_recurse      modular_power_of_k_table     modular_power_of_power_for_prime_modulus       modular_power_recurse_i64    modular_power_u32   modular_power_u64   modular_power_usize_recurse    modular_power_with_neg_exp_i32      modular_tetration  monge_dynamic_programming   monte_carlo_algorithm   montgomery_modular_multiplication   montgomery_modular_multiplication_64    montgomery_static_modular_int_with_id_u64       montmort_number  montmort_numbers_table_from_i32     montmort_numbers_table_modular_usize     morphism morris_pratt_longest_border_table_0_indexed       morris_pratt_longest_border_table_1_indexed       most_significant_bit_number_with_binary_search       most_significant_bit_number_with_msb      most_significant_bit_with_bit_length_u64       multi_key_quicksort   multiplicative_inverse  extension of std::ops multiset n_choose_table_from_i32     n_group_category   n_group_finite_group    naive_mobius_transform_for_subset_additive_with_std        negative_cycle  network_graph_node   newton_method_with_derivative_function_f64      Newton’s Method
f(x) must be differentiabl and f’(x) != 0
example
f(x) = x^2 - 10.
f’(x) = 2x
x = 3.16227…
TODO: use generic instead of f64 accepting int, big-rational, etc. newton_raphson_division   next_combination_bits   next_power_of_2_table_const_usize       next_power_of_two_with_bit_length_u64        next_power_of_two_with_builtin_u64       next_prime_number   next_prime_number_table    next_subset_bits   normalize_sort_csgraph   ntt number_of_common_subsequences_from_i32      number_of_common_subsequences_low_memory_from_i32        number_of_common_subsequences_low_memory_modular_i64        number_of_common_subsequences_modular_i64      number_of_common_substrings    number_of_complete_permutations    number_of_days_between_2_dates      number_of_dearangement   number_of_distinct_prime_factors_table_with_divisor_fast_zeta_usize           number_of_distinct_prime_factors_table_with_divisor_zeta_usize          number_of_distinct_subsequences    number_of_distinct_subsequences_modular_i64      number_of_distinct_subsequences_with_min_step_modular_i64         number_of_distinct_substrings_with_sais_lcp_kasai        number_of_divisors_from_prime_factorize_result       number_of_divisors_from_prime_factorize_result_modular        number_of_divisors_table_naive_usize      number_of_divisors_table_with_divisor_fast_zeta_transform_usize          number_of_divisors_table_with_divisor_zeta_transform_usize         number_of_edges_in_subgraph_naive_dp       number_of_edges_in_subgraph_with_subset_fast_zeta         number_of_edges_in_subgraph_with_subset_zeta        number_of_gcd_pairs_in_range_table_with_gcd_convolution          number_of_gcd_pairs_in_range_table_with_multiples_fast_mobius           number_of_lattice_points_in_polygon      number_of_lattice_points_on_segment      number_of_lcm_pairs_in_range_table_with_lcm_convolution          number_of_multiples_table_naive_usize      number_of_multiples_table_with_fast_multiple_zeta_usize         number_of_multiples_table_with_multiple_zeta_usize        number_of_nodes_reachable_into_cycle_bfs_rev_edges         number_of_nodes_reachable_into_cycle_dfs_recurse        number_of_pairs_in_range_l_r_whose_gcd_is_k_table            number_of_subsequences   number_of_swap_in_bubble_sort_with_target_as_inversion_number           number_of_swap_in_bubble_sort_with_target_naive         number_of_swap_in_selection_sort      number_of_swap_in_shell_sort      number_of_topological_sort    number_of_topological_sort_modular     number_of_undirected_cycle_graph_table      number_of_undirected_path_graph_table      number_theoritic_transform   number_trait  numeric_array_normalize_min_as_0      numeric_array_normalize_min_as_offset      odd_even_sort   ops extension of std::ops. order_static_tree   ordered_set  oscillating_merge_sort   p_group pairing_heap  pancacke_sorting  parity_check_matrix   partial_order  pascal_rule_cached_from_usize     pascal_simplex  pascal_triangle_from_i32    pascal_triangle_from_u64_low_memory      pascal_triangle_with_instance_semiring     patricia_tree  pattern_defeating_quick_sort    pdqsort perfect_numbers  permutation_argsort  permutation_functional_graph_kth_from_any      ph_tree pi_with_arccosine   pick_theorem  pigeonhole_sort  pivot_tree_node   pivot_tree_node_usize_recurse     pivot_tree_node_usize_with_size      pivot_tree_node_usize_with_size_recurse       pivot_tree_node_with_size_recurse      pivot_tree_ordered_set    pivot_tree_ordered_set_simple     pivot_tree_ordered_set_usize_with_size_with_vec         pocket_modint_u32   pocket_tree_bfs_depth    pocket_tree_bfs_parent    pointer_grpah  polar_coordinates_2d_f64    polar_coordinates_area   polar_coordinates_distance   polar_coordinates_system   polar_coordinates_trait   pollard_kangaroo_algorithm   pollard_p_1   pollard_rho  reexporting pollard rho related algorithms. polygon_area_2_times_2d     to avoid floating point error polygon_area_2d   polyphase_merge_sort   pop popcount_bit_by_bit    popcount_cached_usize   popcount_divide_and_conquer    popcount_divide_and_conquer_optimized     popcount_resetting_lsb_usize    popcount_table  popcount_table_const_8_bit_usize      popcount_table_with_subset_fast_zeta      popcount_with_const_8_bit_table_usize       popcount_with_k_bit_table_usize      popcount_with_std_u64    postman_sort  power power_dynamic  power_group  power_group_itself   power_group_trait   power_monoid  power_monoid_itself   power_monoid_trait   power_multiplicative_group_with_std_ops_exp_from_i32         power_multiplicative_monoid_with_std_ops_exp_from_i32         power_multiplicative_semigroup_with_std_ops      power_multiplicative_semigroup_with_std_ops_exp_from_i32         power_multiplicative_semigroup_with_std_ops_recurse       power_semigroup  power_semigroup_itself   power_semigroup_recurse   power_semigroup_trait   pq_binary_heap_std_impl     pq_tree pr_tree prefix_function  prefix_tree  preorder previous_prime_number   previous_prime_number_table    primality number theory algorithms on primality prime prime_counting_fast   prime_counting_fast_half    this does not pass test. prime_counting_fast_optimized    prime_counting_function   prime_counting_meissel_lehmer    prime_factorization_of_lcm_of_multiple_nums       prime_factorize_combination_with_sieve_of_eratosthenes       prime_factorize_combination_with_sieve_of_eratosthenes_legendre        prime_factorize_factorial_histogram_with_trial_division       prime_factorize_factorial_with_legendre_formula_u32       prime_factorize_factorial_with_legendre_formula_usize       prime_factorize_factorial_with_lpf_u32      prime_factorize_fermat   prime_factorize_lenstra_elliptic_curve     prime_factorize_pollard_rho    prime_factorize_pollard_rho_flat     prime_factorize_pollard_rho_flat_2      prime_factorize_quadratic_sieve    prime_factorize_trial_division    prime_factorize_trial_division_usize     prime_factorize_with_least_prime_factor_table_u32        prime_factorize_with_least_prime_factor_table_usize        prime_number  prime_omega_function   prime_pi_approx_ln    prime_pi_function   prime_pi_power_of_10     prime_pi_table_from_enumerate_primes      priority_queue  Priority Queue priority_queue_trait   priority_r_tree   project_selection_problem   proportion_extend_sort   proth_number  proxmap_sort  prufer_group  pseudorandom_number_generator   quasigroup query query_on_tree_path    queue_with_2_stacks    quick_sort_inplace_recurse    quicksort r_plus_tree   r_star_tree   rabin_karp  radix_heap  radix_sort  radix_tree  random_forest  random_sequence_generate   randomized_binary_search_tree    range_tree  rank_of_permutation_for_small_n      rbst read_adjacency_list_graph    read_edges  read_matrix  read_weighted_adjacency_list_graph     read_weigted_edges   rectangle_tree  red_black_tree   reduce reflexive_relation  rerooting rerooting_dp  rerooting_dp_with_instance_abelian_group      rerooting_dp_with_instance_abelian_group_with_std_ops         rerooting_dp_with_instance_commutative_monoid      rerooting_dp_with_instance_commutative_monoid_as_struct_recurse         rerooting_dp_with_instance_commutative_monoid_old       rerooting_dp_with_instance_commutative_monoid_with_std_ops         rerooting_dp_with_node_priority_with_instance_monoid        reset_least_significant_bit_direct_u64      reset_least_significant_bit_smart     reset_least_significant_bit_smart_u64      reset_least_significant_bit_subtract_lsb_number       restore_tree_path_from_root_with_parent       rle rng rng_linear_congruential   rng_mersenne_twister   rng_static_xorshift64   rng_xorshift  rng_xorshift32  rng_xorshift64  rng_xorshift96  rng_xorshift64star  rng_xorshift128  rng_xorshift128plus  rng_xorshift1024star  rng_xorwow  rng_xoshiro256_core   rng_xoshiro256plus  rng_xoshiro256starstar  round_up_with_int_u64     run_length_encoding   safe_int_power   sat_2 sbbst scapegoat_tree  scc segment_tree_2d   segment_tree_2d_dense    segment_tree_additive_with_std     segment_tree_beats   segment_tree_dual   segment_tree_dual_additive_from_i32_with_std        segment_tree_dual_range_update_additive_from_i32_with_std          segment_tree_dual_range_update_with_instance       segment_tree_dual_range_update_with_static       segment_tree_dual_with_instance_monoid      segment_tree_dual_with_instance_monoid_recurse       segment_tree_dual_with_static_monoid      segment_tree_dynamic_node    segment_tree_i64_add    segment_tree_i64_min    segment_tree_lazy_01_sequence_range_xor_range_inversion_number          segment_tree_lazy_additive_homomorphism_with_std_ops        segment_tree_lazy_additive_homomorpshim_range_update_range_sum_modint          segment_tree_lazy_i64_range_add_range_sum        segment_tree_lazy_range_add_range_minimum       segment_tree_lazy_range_affine_range_sum       segment_tree_lazy_range_update_range_minimum       segment_tree_lazy_range_update_range_sum       segment_tree_lazy_with_instance_homomorphism      segment_tree_lazy_with_instance_homomorphism_recurse       segment_tree_lazy_with_static_ops      segment_tree_min   segment_tree_multiset   segment_tree_point_update_get_range_sum_and_range_prefix_sum_min_i64             segment_tree_range_minimum    segment_tree_with_instance_monoid     segment_tree_with_instance_monoid_recurse      segment_tree_with_static_monoid     selection_sort  self_balancing_binary_search_tree     set_theory  shaker_sort  shakutori_method  shear_sort  shell_sort  shell_sort_gap_sequences    shortest_path_01_bfs_sparse     shortest_path_a_star_2d_grid_path_or_wall_udlr_option_u32            shortest_path_a_star_sparse_tuple_edges_adjacency_list_i64_with_inf            shortest_path_arborescence   shortest_path_bfs_2d_grid_path_or_wall_simple_udlr_move           shortest_path_bfs_sparse_tuple_edges_adjacency_list_usize         shortest_path_desopo_pape_sparse     shortest_path_potential   shortest_path_predecessors   shortest_path_tree   shortest_path_viterbi   shuffle_sort  sieve_of_atkin   sieve_of_eratosthenes_enumerate_primes_in_range_query_optim_u64          example
enumerate(10, 20)
= [11, 13, 17, 19] sieve_of_eratosthenes_enumerate_primes_in_range_query_usize         example
enumerate(10, 20)
= [11, 13, 17, 19] sieve_of_eratosthenes_enumerate_primes_in_range_usize        example
enumerate(10, 20)
= [11, 13, 17, 19] sieve_of_eratosthenes_enumerate_primes_u32      sieve_of_eratosthenes_enumerate_primes_usize      sieve_of_eratosthenes_euler_totient_function_table_direct_usize         sieve_of_eratosthenes_greatest_prime_factor_table_direct_usize         sieve_of_eratosthenes_is_prime_table      sieve_of_eratosthenes_is_prime_table_const_fast        sieve_of_eratosthenes_least_prime_factor_table_usize        sieve_of_eratosthenes_least_prime_factor_table_usize_optim         sieve_of_eratosthenes_least_prime_factor_table_usize_optim2         sieve_of_eratosthenes_legendre    sieve_of_eratosthenes_low_memory_prime_factorize_generator        sieve_of_eratosthenes_low_memory_prime_generator_optim_u64         sieve_of_eratosthenes_low_memory_prime_generator_usize        sieve_of_eratosthenes_mobius_function_table_direct_isize        sieve_of_eratosthenes_mobius_function_table_direct_isize_optim         sieve_of_eratosthenes_number_of_distinct_prime_factors_table_usize          sieve_of_eratosthenes_prime_factorize_factorial      sieve_of_eratosthenes_prime_factorize_factorial_flat       sieve_of_eratosthenes_prime_factorize_factorial_histogram       sieve_of_eratosthenes_prime_factorize_flat_in_range        sieve_of_eratosthenes_prime_factorize_flat_in_range_query         example
factorize(2, 8)
= [2, 3, 2, 2, 5, 2, 3, 7] sieve_of_eratosthenes_prime_factorize_in_range       example
factorize(2, 8)
= [(2, 4), (3, 2), (5, 1), (7, 1)] sieve_of_eratosthenes_prime_factorize_in_range_query        example
factorize(2, 8)
= [(2, 4), (3, 2), (5, 1), (7, 1)] sieve_of_eratosthenes_prime_factorize_table_flat_in_range_query          example
factorize(2, 8)
= [[2], [3], [2, 2], [5], [2, 3], [7]] sieve_of_eratosthenes_prime_factorize_table_flat_usize        sieve_of_eratosthenes_prime_factorize_table_in_range_query         example
factorize(2, 8)
= [[(2, 1)], [(3, 1)], [(2, 2)], [(5, 1)], [(2, 1), (3, 1)], [(7, 1)]] sieve_of_eratosthenes_prime_factorize_table_usize       sieve_of_eratosthenes_range_sieve_enumerate      sieve_of_euler   sieve_of_linear   sieve_of_sundaram_u32    sieve of sundaram simulated_annealing  single_source_shortest_path    singly_linked_list_node_with_box      singly_linked_list_node_with_rc_refcell       singly_linked_list_queue    singly_linked_list_stack    size skew_heap  sliding_window_aggregation   sliding_window_aggregation_deque_with_instance_group       sliding_window_aggregation_queue_with_instance_group       sliding_window_aggregation_queue_with_instance_monoid       sliding_window_maximum_with_deque     sliding_window_minimum_with_deque     slope_trick  slowsort smallest_enclosing_circle   smawk_algorithm  smoothsort solver sort sortable_fifo_queue   sorting_network  sorting_number  spaghetti_sort  spanning_forest_with_uf    sparse_table_with_instance_idempotent_binary_operation       sparse_table_with_static_idempotent_binary_operation       sparse_table_with_static_idempotent_semigroup      sparse table spfa reexporting shortest path faster algorithm. splay_tree_multiset   splay_tree_multiset_recurse    splay_tree_multiset_unsafe    splay_tree_multiset_unsafe_recurse     splay_tree_multiset_with_array_recurse      splay_tree_node   splay_tree_node_recurse    splay_tree_node_unsafe    splay_tree_node_unsafe_recurse     splay_tree_node_with_array_recurse      splay_tree_node_with_trait     split spqr_tree  spreadsort sqrt_decomposition  sqrt_decomposition_additive_with_std     sqrt_decomposition_dual_range_add_i64      sqrt_decomposition_dual_range_update_i32      sqrt_decomposition_dual_with_instance_monoid      sqrt_decomposition_i64_add    sqrt_decomposition_lazy_i64_range_add_range_sum        sqrt_decomposition_lazy_range_add_range_minimum       sqrt_decomposition_lazy_range_update_range_minimum       sqrt_decomposition_lazy_range_update_range_sum       sqrt_decomposition_lazy_with_instance_homomorphism      sqrt_decomposition_multiset   sqrt_decomposition_range_minimum_i32     sqrt_decomposition_range_sum_i64     sqrt_decomposition_with_instance_monoid     sqrt_tree  srt_division  sssp_dijkstra_sparse_with_general     sssp_faster_algorithm   stable_sort  stack_with_vec   static_const_modulus_frequent    static_matrix_property_frequent    static_matrix_property_i64_2_2      static_matrix_property_trait    static_modular_arithmetic_trait    reference
https://en.wikipedia.org/wiki/Modular_arithmetic#Properties static_modular_int_i64    static_modular_int_with_id_i64      static_modulus_trait   static_square_matrix   static_square_matrix_property_trait     static_square_matrix_with_id     static_tensor_shape   static tensor shape for static tensor. steiner_tree  stooge_sort  strconv module name is following Go’s package. strict_bellman_ford_abstract    string_ith_ascii_letter    string_ith_char   strongly_connected_components   strongly connected components strongly_connected_components_kosaraju    strongly_connected_components_kosaraju_as_struct_recurse       strongly_connected_components_kosaraju_recurse     strongly_connected_components_path_based     strongly_connected_components_path_based_another      strongly_connected_components_path_based_as_struct_recurse        strongly_connected_components_path_based_recurse      strongly_connected_components_reachability_based     strongly_connected_components_tarjan_lowlink     strongly_connected_components_tarjan_lowlink_as_struct_recurse        strongly_connected_components_tarjan_lowlink_recurse      strongly_connected_components_topological_sort     strongly_connected_components_transpose    submodular_flow  submodular_function  submodular_set_function   subset_sum  subset_sum_at_most_k     subset_sum_limited_count_multiple_same_values       subset_sum_max_less_than_meet_in_the_middle_usize          subset_sum_min_count    special case of dual unbounded knapsack table just.
that all weights are 1. subset_sum_problem   suffix_array  suffix_array_doubling_argsort    suffix_array_doubling_argsort_const_optim      suffix_array_doubling_counting_argsort     suffix_array_induced_sort    suffix_array_induced_sort_recurse     suffix_automaton  suffix_tree  sum_arithmetic_progression   sum_of_all_pairs_xor_in_array_modular        sum_of_all_pairs_xor_in_array_modular_usize         sum_of_divisors_count    sum_of_divisors_count_times_i      sum_of_divisors_sum    sum_of_divisors_table_naive     sum_of_divisors_table_with_divisor_fast_zeta        sum_of_divisors_table_with_divisor_zeta       sum_of_gcd_for_each_element_is_1_to_k_euler_phi_from_usize              sum_of_gcd_for_each_element_is_1_to_k_fast_mobius_transform_from_usize               sum_of_gcd_for_each_element_is_1_to_k_fast_mobius_transform_usize              sum_of_gcd_for_each_element_is_1_to_k_mobius_transform_from_usize              sum_of_gcd_for_each_element_is_1_to_k_mobius_transform_usize             sum_of_gcd_with_k_for_1_to_n_with_divisors_euler_phi             sum_of_gcd_with_k_for_1_to_n_with_divisors_factorize_fast_mobius              sum_of_i_times_n_choose_i       sum_of_lcp_of_all_suffix_pairs_with_sais_lcp_kasai           sum_of_lcp_with_all_suffixes_with_z_algorithm         sum_of_multiples   sum_of_multiples_count_range     sum_of_multiples_count_times_i_range       sum_of_multiples_sum_range     sum_of_multiples_sum_with_smart_formula       sum_of_multiples_table_naive     sum_of_multiples_table_with_multiples_fast_zeta        sum_of_multiples_table_with_multiples_zeta       sum_of_n_choose_i     sum_of_product_of_all_pairs      sum_of_xor_prod_of_all_subsets_in_array_modular          swag t_tree tango_tree  taylor_series  tensor tensor_property  tensor_trait  ternary_heap  ternary_search  ternary_search_tree   top_tree  topological_sort  topology torus total_order  tournament_sort  transitive_relation  transpose_sparse_graph_with_unweighted_edges      transpose_sparse_graph_with_weighted_edges      traveling_salesperson  traveling_salesperson_give_and_take_mem_access_optim_with_inf          traveling_salesperson_giving_with_inf     traveling_salesperson_taking_with_inf     treap tree_bfs_abstract   tree_bfs_depth_with_abstract     tree_bfs_parent   tree_bfs_parent_depth    tree_bfs_parent_with_abstract     tree_dfs_abstract   tree_dfs_euler_tour_heavy_light_decomposition_as_struct         tree_dfs_parent_depth_size     tree_dfs_size_recurse    tree_dfs_size_with_abstract     tree_diameter_and_path_weigted_edge_find_farthest_2_times_with_dfs            tree_diameter_dp_for_each_subtree_with_dfs        tree_diameter_finding_farthest_2_times_with_bfs        tree_diameter_path_unweighted    tree_diameter_terminal_nodes    tree_edges_to_graph    tree_get_path_query_with_lifting      tree_get_path_with_bfs     tree_node  tree_path_aggregation   tree_path_aggregation_with_binary_lifting      tree_path_aggregation_with_hld     tree_restore_path_from_parents     tree_sort  triangle_2d_area_with_vector_cross_product       triangle_2d_with_vector_i64     tribonacci_number  tribonacci_sequence_modular   trigonometry_tau_with_pi    two_sat two_satisfiability  two_three_four_tree    two_three_heap   two_three_tree   ub_tree undirected_bridge_detection_chain_decomposition     undirected_bridge_detection_lowlink    undirected_edges_to_bidirected    undirected_lowlink  undirected_tuple_edges_to_adjacency_list      undirected_tuple_edges_with_data_to_adjacency_list        union_find_low_memory    union_find_low_memory_minimal     union_find_low_memory_with_trait      Disjoint-Set-Union (DSU) or Union-Find (UF). union_find_persistent   union_find_potentialized_i64_add     union_find_potentialized_with_instance_abelian_group       union_find_potentialized_with_static_abelian_group_and_trait         union_find_rollback   union_find_traits   union_find_weighted   upper_bound_on_slice    usize_u64_impl_graph_edge_trait      van_emde_boas_tree    vector_2d_i64_impl_angle_sort      vector_dedup  vector_rotate_counterclockwise_90_2d_i64      vector_rotate_counterclockwise_180_2d_i64      vector_rotate_counterclockwise_270_2d_i64      vector_rotation_2d_by_radian_with_matrix       don’t confused with matrix rotation.
this is the matrix for rotation of vectors. vector_rotation_3d_by_radian_with_matrix       vector_rotation_matrix_2d    vector_space  vector space algebra vector_unique  verbal_arithmetic  vertex_cut  vertex_seperator  virtual_tree  viterbi_algorithm  volume_of_torus   vp_tree wavelet_matrix  wavl_tree  weak_avl_tree   weighted_union_algorithm   x_tree xor_distance_on_tree_query     xor_distance_on_tree_with_dfs_usize       xor_of_all_pairs_bitwise_and_of_two_arrays         xor_prefix_set_hash    xor_vector_space_basis_original_with_gaussian_elimination        xor_vector_space_basis_original_with_linear_span_bfs         xor_vector_space_basis_with_cumulative_min       xor_vector_space_basis_with_gaussian_elimination       xor_vector_space_gaussian_elimination     xor_vectors_rank_online_with_gaussian_elimination       z_algorithm  z_algorithm_find_all_substring_indices      zeller_day_of_week_congruence_formula      zero_element  zero_one_bfs   zeta_transform_for_divisors_additive_with_std       zeta_transform_for_divisors_with_instant_func       zeta_transform_for_multiples_additive_with_std       zeta_transform_for_multiples_with_instant_func       zeta_transform_for_subset    zeta_transform_for_subset_additive_with_std       zeta_transform_for_superset    dbg reference
https://users.rust-lang.org/t/show-value-only-in-debug-mode/43686/3 impl_add_assign_from_add     read_vec  write_all  write_vec