git: b41b467ee004 - main - math/the-algorithms-c++: New port: Collection of various algorithms in mathematics, physics, etc

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 14 Jan 2023 01:42:25 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b41b467ee004cccd28baf3e3639d60f2efe3d1d1

commit b41b467ee004cccd28baf3e3639d60f2efe3d1d1
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2023-01-14 01:41:00 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2023-01-14 01:42:19 +0000

    math/the-algorithms-c++: New port: Collection of various algorithms in mathematics, physics, etc
---
 math/Makefile                     |   1 +
 math/the-algorithms-c++/Makefile  |  20 +++
 math/the-algorithms-c++/distinfo  |   3 +
 math/the-algorithms-c++/pkg-descr |   8 ++
 math/the-algorithms-c++/pkg-plist | 266 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 298 insertions(+)

diff --git a/math/Makefile b/math/Makefile
index b1feac913044..7e70bb4f3d65 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -1152,6 +1152,7 @@
     SUBDIR += testu01
     SUBDIR += tetgen
     SUBDIR += teyjus
+    SUBDIR += the-algorithms-c++
     SUBDIR += timbl
     SUBDIR += tiny-bignum-c
     SUBDIR += tlapack
diff --git a/math/the-algorithms-c++/Makefile b/math/the-algorithms-c++/Makefile
new file mode 100644
index 000000000000..6422d51c9e00
--- /dev/null
+++ b/math/the-algorithms-c++/Makefile
@@ -0,0 +1,20 @@
+PORTNAME=	the-algorithms-c++
+DISTVERSION=	g20230110
+CATEGORIES=	math
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Collection of various algorithms in mathematics, physics, etc
+WWW=		https://thealgorithms.github.io/C-Plus-Plus/
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		cmake gl localbase:ldflags
+USE_GL=		gl glut
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	TheAlgorithms
+GH_PROJECT=	C-Plus-Plus
+GH_TAGNAME=	e2bf654
+
+.include <bsd.port.mk>
diff --git a/math/the-algorithms-c++/distinfo b/math/the-algorithms-c++/distinfo
new file mode 100644
index 000000000000..5017610a5960
--- /dev/null
+++ b/math/the-algorithms-c++/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1673659181
+SHA256 (TheAlgorithms-C-Plus-Plus-g20230110-e2bf654_GH0.tar.gz) = b7bb1fc8ca3fc54f27f4b31b7ec3a25ac9b4755a9e7414683ecc660acb48642a
+SIZE (TheAlgorithms-C-Plus-Plus-g20230110-e2bf654_GH0.tar.gz) = 459011
diff --git a/math/the-algorithms-c++/pkg-descr b/math/the-algorithms-c++/pkg-descr
new file mode 100644
index 000000000000..ac16eb34b2ca
--- /dev/null
+++ b/math/the-algorithms-c++/pkg-descr
@@ -0,0 +1,8 @@
+TheAlgorithms/C-Plus-Plus is a collection of open-source implementation of a
+variety of algorithms implemented in C++ and licensed under MIT License.
+These algorithms span a variety of topics from computer science, mathematics
+and statistics, data science, machine learning, engineering, etc. The
+implementations and the associated documentation are meant to provide a learning
+resource for educators and students. Hence, one may find more than one
+implementation for the same objective but using a different algorithm strategies
+and optimizations.
diff --git a/math/the-algorithms-c++/pkg-plist b/math/the-algorithms-c++/pkg-plist
new file mode 100644
index 000000000000..e82971ffb5d4
--- /dev/null
+++ b/math/the-algorithms-c++/pkg-plist
@@ -0,0 +1,266 @@
+bin/backtracking/graph_coloring
+bin/backtracking/knight_tour
+bin/backtracking/magic_sequence
+bin/backtracking/minimax
+bin/backtracking/n_queens
+bin/backtracking/n_queens_all_solution_optimised
+bin/backtracking/nqueen_print_all_solutions
+bin/backtracking/rat_maze
+bin/backtracking/subarray_sum
+bin/backtracking/subset_sum
+bin/backtracking/sudoku_solver
+bin/backtracking/wildcard_matching
+bin/bit_manipulation/count_bits_flip
+bin/bit_manipulation/count_of_set_bits
+bin/bit_manipulation/count_of_trailing_ciphers_in_factorial_n
+bin/bit_manipulation/find_non_repeating_number
+bin/bit_manipulation/hamming_distance
+bin/bit_manipulation/set_kth_bit
+bin/ciphers/a1z26_cipher
+bin/ciphers/atbash_cipher
+bin/ciphers/base64_encoding
+bin/ciphers/caesar_cipher
+bin/ciphers/elliptic_curve_key_exchange
+bin/ciphers/hill_cipher
+bin/ciphers/morse_code
+bin/ciphers/vigenere_cipher
+bin/ciphers/xor_cipher
+bin/data_structures/avltree
+bin/data_structures/binary_search_tree
+bin/data_structures/binary_search_tree2
+bin/data_structures/binaryheap
+bin/data_structures/bloom_filter
+bin/data_structures/circular_queue_using_linked_list
+bin/data_structures/cll
+bin/data_structures/disjoint_set
+bin/data_structures/doubly_linked_list
+bin/data_structures/dsu_path_compression
+bin/data_structures/dsu_union_rank
+bin/data_structures/linked_list
+bin/data_structures/linkedlist_implentation_usingarray
+bin/data_structures/list_array
+bin/data_structures/morrisinorder
+bin/data_structures/queue_using_array
+bin/data_structures/queue_using_array2
+bin/data_structures/queue_using_linked_list
+bin/data_structures/queue_using_linkedlist
+bin/data_structures/queue_using_two_stacks
+bin/data_structures/rb_tree
+bin/data_structures/reverse_a_linked_list
+bin/data_structures/skip_list
+bin/data_structures/sparse_table
+bin/data_structures/stack_using_array
+bin/data_structures/stack_using_linked_list
+bin/data_structures/stack_using_queue
+bin/data_structures/test_queue
+bin/data_structures/test_stack
+bin/data_structures/test_stack_students
+bin/data_structures/tree
+bin/data_structures/tree_234
+bin/data_structures/trie_modern
+bin/data_structures/trie_tree
+bin/data_structures/trie_using_hashmap
+bin/divide_and_conquer/karatsuba_algorithm_for_fast_multiplication
+bin/geometry/graham_scan_algorithm
+bin/geometry/jarvis_algorithm
+bin/geometry/line_segment_intersection
+bin/graph/bidirectional_dijkstra
+bin/graph/breadth_first_search
+bin/graph/bridge_finding_with_tarjan_algorithm
+bin/graph/connected_components
+bin/graph/connected_components_with_dsu
+bin/graph/cycle_check_directed_graph
+bin/graph/depth_first_search
+bin/graph/depth_first_search_with_stack
+bin/graph/dijkstra
+bin/graph/hamiltons_cycle
+bin/graph/hopcroft_karp
+bin/graph/is_graph_bipartite
+bin/graph/is_graph_bipartite2
+bin/graph/kosaraju
+bin/graph/kruskal
+bin/graph/lowest_common_ancestor
+bin/graph/max_flow_with_ford_fulkerson_and_edmond_karp_algo
+bin/graph/prim
+bin/graph/topological_sort
+bin/graph/topological_sort_by_kahns_algo
+bin/graph/travelling_salesman_problem
+bin/graphics/spirograph
+bin/hash/chaining
+bin/hash/double_hash_hash_table
+bin/hash/linear_probing_hash_table
+bin/hash/md5
+bin/hash/quadratic_probing_hash_table
+bin/hash/sha1
+bin/machine_learning/a_star_search
+bin/machine_learning/adaline_learning
+bin/machine_learning/kohonen_som_topology
+bin/machine_learning/kohonen_som_trace
+bin/machine_learning/neural_network
+bin/machine_learning/ordinary_least_squares_regressor
+bin/math/approximate_pi
+bin/math/area
+bin/math/armstrong_number
+bin/math/binary_exponent
+bin/math/binomial_calculate
+bin/math/check_amicable_pair
+bin/math/check_factorial
+bin/math/check_prime
+bin/math/complex_numbers
+bin/math/double_factorial
+bin/math/eulers_totient_function
+bin/math/extended_euclid_algorithm
+bin/math/factorial
+bin/math/fast_power
+bin/math/fibonacci
+bin/math/fibonacci_fast
+bin/math/fibonacci_large
+bin/math/fibonacci_matrix_exponentiation
+bin/math/fibonacci_sum
+bin/math/finding_number_of_digits_in_a_number
+bin/math/gcd_iterative_euclidean
+bin/math/gcd_of_n_numbers
+bin/math/gcd_recursive_euclidean
+bin/math/integral_approximation
+bin/math/integral_approximation2
+bin/math/inv_sqrt
+bin/math/large_factorial
+bin/math/largest_power
+bin/math/lcm_sum
+bin/math/least_common_multiple
+bin/math/linear_recurrence_matrix
+bin/math/magic_number
+bin/math/miller_rabin
+bin/math/modular_division
+bin/math/modular_exponentiation
+bin/math/modular_inverse_fermat_little_theorem
+bin/math/modular_inverse_simple
+bin/math/n_bonacci
+bin/math/n_choose_r
+bin/math/ncr_modulo_p
+bin/math/number_of_positive_divisors
+bin/math/perimeter
+bin/math/power_for_huge_numbers
+bin/math/power_of_two
+bin/math/prime_factorization
+bin/math/prime_numbers
+bin/math/primes_up_to_billion
+bin/math/realtime_stats
+bin/math/sieve_of_eratosthenes
+bin/math/sqrt_double
+bin/math/string_fibonacci
+bin/math/sum_of_binomial_coefficient
+bin/math/sum_of_digits
+bin/math/vector_cross_product
+bin/math/volume
+bin/numerical_methods/babylonian_method
+bin/numerical_methods/bisection_method
+bin/numerical_methods/brent_method_extrema
+bin/numerical_methods/composite_simpson_rule
+bin/numerical_methods/durand_kerner_roots
+bin/numerical_methods/false_position
+bin/numerical_methods/fast_fourier_transform
+bin/numerical_methods/gaussian_elimination
+bin/numerical_methods/golden_search_extrema
+bin/numerical_methods/gram_schmidt
+bin/numerical_methods/inverse_fast_fourier_transform
+bin/numerical_methods/lu_decompose
+bin/numerical_methods/midpoint_integral_method
+bin/numerical_methods/newton_raphson_method
+bin/numerical_methods/ode_forward_euler
+bin/numerical_methods/ode_midpoint_euler
+bin/numerical_methods/ode_semi_implicit_euler
+bin/numerical_methods/qr_decomposition
+bin/numerical_methods/qr_eigen_values
+bin/numerical_methods/rungekutta
+bin/numerical_methods/successive_approximation
+bin/others/buzz_number
+bin/others/decimal_to_binary
+bin/others/decimal_to_hexadecimal
+bin/others/decimal_to_roman_numeral
+bin/others/easter
+bin/others/fast_integer_input
+bin/others/happy_number
+bin/others/iterative_tree_traversals
+bin/others/kadanes3
+bin/others/lru_cache
+bin/others/matrix_exponentiation
+bin/others/palindrome_of_number
+bin/others/paranthesis_matching
+bin/others/pascal_triangle
+bin/others/postfix_evaluation
+bin/others/primality_test
+bin/others/recursive_tree_traversal
+bin/others/smallest_circle
+bin/others/sparse_matrix
+bin/others/spiral_print
+bin/others/stairs_pattern
+bin/others/tower_of_hanoi
+bin/others/vector_important_functions
+bin/probability/addition_rule
+bin/probability/bayes_theorem
+bin/probability/binomial_dist
+bin/probability/geometric_dist
+bin/probability/poisson_dist
+bin/probability/windowed_median
+bin/search/binary_search
+bin/search/exponential_search
+bin/search/fibonacci_search
+bin/search/floyd_cycle_detection_algo
+bin/search/hash_search
+bin/search/interpolation_search
+bin/search/interpolation_search2
+bin/search/jump_search
+bin/search/linear_search
+bin/search/median_search
+bin/search/median_search2
+bin/search/saddleback_search
+bin/search/sublist_search
+bin/search/ternary_search
+bin/search/text_search
+bin/sorting/bead_sort
+bin/sorting/binary_insertion_sort
+bin/sorting/bitonic_sort
+bin/sorting/bogo_sort
+bin/sorting/bubble_sort
+bin/sorting/bucket_sort
+bin/sorting/cocktail_selection_sort
+bin/sorting/comb_sort
+bin/sorting/count_inversions
+bin/sorting/counting_sort
+bin/sorting/counting_sort_string
+bin/sorting/cycle_sort
+bin/sorting/dnf_sort
+bin/sorting/gnome_sort
+bin/sorting/heap_sort
+bin/sorting/insertion_sort
+bin/sorting/library_sort
+bin/sorting/merge_insertion_sort
+bin/sorting/merge_sort
+bin/sorting/non_recursive_merge_sort
+bin/sorting/numeric_string_sort
+bin/sorting/odd_even_sort
+bin/sorting/pancake_sort
+bin/sorting/pigeonhole_sort
+bin/sorting/quick_sort
+bin/sorting/quick_sort_3
+bin/sorting/radix_sort
+bin/sorting/radix_sort2
+bin/sorting/random_pivot_quick_sort
+bin/sorting/recursive_bubble_sort
+bin/sorting/selection_sort_iterative
+bin/sorting/selection_sort_recursive
+bin/sorting/shell_sort
+bin/sorting/shell_sort2
+bin/sorting/slow_sort
+bin/sorting/strand_sort
+bin/sorting/swap_sort
+bin/sorting/tim_sort
+bin/sorting/wave_sort
+bin/sorting/wiggle_sort
+bin/strings/brute_force_string_searching
+bin/strings/horspool
+bin/strings/knuth_morris_pratt
+bin/strings/manacher_algorithm
+bin/strings/rabin_karp
+bin/strings/z_function