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