Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upRefactored arithmetic_analysis/secant_method.py #2263
Conversation
- added missing Wikipedia link - added type hints and few more doctests - moved the function `f` to inside `secant_method` as a parameter `func`, instead of calling a globally defined function inside the algorithm body - renamed some variables and introduced some intermediate variables, to make it more readable and avoid recalculating `f(x1)` - replaced unused for-loop variable `i` with `_`
stale
bot
commented
Sep 2, 2020
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
| lower: float = lower_bound | ||
| upper: float = upper_bound |
Comment on lines
+27
to
+28
This comment has been minimized.
This comment has been minimized.
| value: float = func(upper) | ||
| numerator: float = value * (upper - lower) | ||
| denominator: float = value - func(lower) |
Comment on lines
+30
to
+32
This comment has been minimized.
This comment has been minimized.
cclauss
Sep 2, 2020
Member
Suggested change
| value: float = func(upper) | |
| numerator: float = value * (upper - lower) | |
| denominator: float = value - func(lower) | |
| value = func(upper) | |
| numerator = value * (upper - lower) | |
| denominator = value - func(lower) |
Type hints on local variables are not needed and they create a lot of visual and cognitive clutter. Python is smart enough to figure out that func() returns a float so value is a float, etc.
| try: | ||
| lower, upper = upper, upper - numerator / denominator | ||
| except ZeroDivisionError: | ||
| raise ZeroDivisionError("Could not find root") |
Comment on lines
+33
to
+36
This comment has been minimized.
This comment has been minimized.
cclauss
Sep 2, 2020
Member
Suggested change
| try: | |
| lower, upper = upper, upper - numerator / denominator | |
| except ZeroDivisionError: | |
| raise ZeroDivisionError("Could not find root") | |
| if denominator == 0.0: | |
| raise ZeroDivisionError("Could not find root") | |
| lower, upper = upper, upper - numerator / denominator |
|
Looking good... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
spamegg1 commentedAug 2, 2020
fto insidesecant_methodas a parameterfunc, instead of calling a globally defined function inside the algorithm bodyf(x1)iwith_Describe your change:
Checklist: