Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] Pre-existing algorithms do not fit the contribution guidelines #2456

Open
realstealthninja opened this issue Apr 30, 2023 · 13 comments
Open
Labels
dont-close This issue/pull request shouldn't be closed enhancement New feature or request help wanted Extra attention is needed

Comments

@realstealthninja
Copy link
Collaborator

realstealthninja commented Apr 30, 2023

Detailed description

Times change

so does the development of algorithms and documentation

Some of the older algorithms existing in this repository do not fit the contribution guidelines.

A short list of examples:

Context

Educating new developers on coding standards is a major priority; As the industry today relies heavily on documentation;
If you were to ask any API developer/user on what the most important part of their development and use it will always be:

  • Code quality
  • documentation

having a fast and performant algorithm is good but whats the point if you cant understand how it works or even why it works.

I think it is in the best interest of us to document our algorithms.

As i consider all algorithms must be:

  • beautiful
  • understandable
  • educational

Possible implementation

No response

Additional information

Others in the past have made major changes like this to this repository and i think its time for us to do the same. to keep the torch moving.

An homage to @kvedala for their part in trying to standardize this repository #805

@Kunal766
Copy link
Contributor

Hi, I wanted to start contributing to this repository ,can you assign me this problem

@realstealthninja
Copy link
Collaborator Author

No sorry no assigning in this repository just start making a pull request and we will review to help you.❤️

Note: assigning requires triage access

@CodeSinghh
Copy link

how can help so that this issue will be resolved

@realstealthninja
Copy link
Collaborator Author

realstealthninja commented Jun 20, 2023

how can help so that this issue will be resolved

just find an algorithm that does not fit the contribution guidelines and start fixing it! we will close this issue once ALL the algorithms are fixed! 😄

@ewd00010
Copy link
Contributor

ewd00010 commented Jul 1, 2023

Math Directory Checklist

Below is the list of algorithms to be checked within the maths repository. Footnotes provide details to potential changes
This is a guide. Please fully check any file you work on! You may find other changes are needed.

  • aliquot_sum.cpp
  • approximate_pi.cpp 1 2
  • area.cpp 3 425 [IN PROGRESS]
  • armstrong_number.cpp
  • binary_exponent.cpp
  • binomial_calculate.cpp
  • check_amicable_pair.cpp
  • check_factorial.cpp
  • check_prime.cpp
  • complex_numbers.cpp 3 42
  • double_factorial.cpp 3 42
  • eratosthenes.cpp 1 5 [IN PROGRESS] looks ok, has code in main
  • eulers_totient_function.cpp 1 2 [IN PROGRESS]
  • extended_euclid_algorithm.cpp 3 425
  • factorial.cpp 3 425
  • fast_power.cpp 3 425
  • fibonacci.cpp 1 425
  • fibonacci_fast.cpp 3 425
  • fibonacci_large.cpp 3 425
  • fibonacci_matrix_exponentiation.cpp 3 425 more white space then you could fit in a 747
  • fibonacci_sum.cpp 1 42
  • finding_number_of_digits_in_a_number.cpp 1 42
  • gcd_iterative_euclidean.cpp 3 425
  • gcd_of_n_numbers.cpp 3 425 fixed in fix: Adding documentations, tests, and amending algorithm for gcd_of_n_numbers.cpp #2766
  • gcd_recursive_euclidean.cpp 3 425
  • integral_approximation.cpp 3 425 change name to integral_approximation_Reimann.cpp ?
  • integral_approximation2.cpp 3 425 change name to integral_approximation_Monte_Carlo.cpp ?
  • inv_sqrt.cpp 1 425
  • large_factorial.cpp 3 425
  • large_number.h 3 42 this is quite a big bit of code to check, 5 may apply here
  • largest_power.cpp 1 425
  • lcm_sum.cpp 1 42 is there a more efficient version of this?
  • least_common_multiple.cpp 1 425
  • linear_recurrence_matrix.cpp 1 425
  • magic_number.cpp 1 425
  • miller_rabin.cpp 1 425
  • modular_division.cpp 1 425
  • modular_exponentiation.cpp 1 42
  • modular_inverse_fermat_little_theorem.cpp 3 425
  • modular_inverse_simple.cpp 1 425
  • n_bonacci.cpp1 42 small comment restructure, potentially needs formatted
  • n_choose_r.cpp 3 425 uses template, states only for uint64_t. test cases are strange?
  • ncr_modulo_p.cpp 3 425
  • number_of_positive_divisors.cpp 3 25
  • perimeter.cpp 1 45
  • power_for_huge_numbers.cpp 3 425
  • power_of_two.cpp 1 425 this one has commented out user input test, maintainer should decide if it stays in
  • prime_factorization.cpp 3 425
  • prime_numbers.cpp 3 425
  • primes_up_to_billion.cpp 3 425
  • quadratic_equations_complex_numbers.cpp 1 425
  • realtime_stats.cpp 3 425
  • sieve_of_eratosthenes.cpp 3 425
  • sqrt_double.cpp 3 425
  • string_fibonacci.cpp 3 425 I don't understand why the ifdef is necessary
  • sum_of_binomial_coefficient.cpp 1 42
  • sum_of_digits.cpp 3 425
  • vector_cross_product.cpp 1 425
  • volume.cpp 3 425

Footnotes

  1. This algorithm needs a small amount of changes 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

  2. Doc rework 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

  3. This algorithm needs a large amount of changes 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

  4. Test rework 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

  5. Code rework 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

@rbevin777
Copy link
Contributor

In terms of making these changes/fixes to the style to fit the guidelines. How do you want PRs to work? My thinking was just 1 small PR based on changes to one module to minimize the changes which need reviewed.

@realstealthninja
Copy link
Collaborator Author

In terms of making these changes/fixes to the style to fit the guidelines. How do you want PRs to work? My thinking was just 1 small PR based on changes to one module to minimize the changes which need reviewed.

one pr for one file

@rbevin777
Copy link
Contributor

I'm starting to look at the area.cpp file here just so no one picks it up by accident 😁

@Bl1xvan
Copy link

Bl1xvan commented Aug 30, 2023

Please assign me fast_power.cpp

@dylancusson
Copy link

Submitted a PR for sum_of_digits.cpp
It's my first PR so let me know if adjustments are needed.
I did forget my .vscode json was in there, I'll remember to exclude it from my commit next time!

@realstealthninja
Copy link
Collaborator Author

realstealthninja commented Sep 1, 2024

let's get this finished

We still need more help on this!
Open a pr for any of the algorithms in the math directory and fix it by adding documentation and tests!

Please mention it here by referencing the pr with the # prefix ♥️

@realstealthninja
Copy link
Collaborator Author

realstealthninja commented Oct 4, 2024

if anyone's interested in doing an algorithm in this list for hacktoberfest feel free to raise an issue of your preferred algorithm. Ill be happy to apply the label to it. ❤️ happy hacking!

please make sure to link both this and your new issue when creating the pr!

@ritk20
Copy link
Contributor

ritk20 commented Oct 9, 2024

  • lcm_sum.cpp 1 42 is there a more efficient version of this?

I don't think there is a more efficient version. I found some proofs of this algorithm here and here but I couldn't find anything better.

Also, this is in the wrong section of The Algorithms website here with other functions to calculate LCM of two numbers.

If there isn't a better approach, I will fix the doc & test issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dont-close This issue/pull request shouldn't be closed enhancement New feature or request help wanted Extra attention is needed
Projects
Status: In progress
Development

No branches or pull requests

9 participants