From 59fc97bdb2331b5cab6852790c01df8b40d8d421 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Thu, 20 Oct 2022 22:53:25 +1300 Subject: [PATCH 01/16] added maclaurin_sin.py function --- maths/maclaurin_sin.py | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 maths/maclaurin_sin.py diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py new file mode 100644 index 000000000000..5ad641011bb5 --- /dev/null +++ b/maths/maclaurin_sin.py @@ -0,0 +1,58 @@ +# Maclaurin series approximation of sine +from math import factorial + + +def maclaurin_sin(theta, accuracy=30): + """ + Returns the maclaurin approximation of sine + :param theta: the angle to which sin is found + :param accuracy: the degree of accuracy wanted minimum ~ 1.5 theta + :return: the value of sine in radians + + + >>> maclaurin_sin(10) + -0.54402111088927 + >>> maclaurin_sin(-10) + 0.54402111088927 + >>> maclaurin_sin(10, 15) + -0.5429111519640644 + >>> maclaurin_sin(-10, 15) + 0.5429111519640644 + >>> maclaurin_sin("10") + Traceback (most recent call last): + ... + ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + >>> maclaurin_sin(10, -30) + Traceback (most recent call last): + ... + ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + >>> maclaurin_sin(10, 30.5) + Traceback (most recent call last): + ... + ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + >>> maclaurin_sin(10, "30") + Traceback (most recent call last): + ... + ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + """ + + if not isinstance(accuracy, int) or accuracy <= 0 or type(theta) not in [int, float]: + raise ValueError('maclaurin_sin() requires an int or float value for theta and positive int for accuracy') + + theta = float(theta) + + _total = 0 + for r in range(accuracy): + _total += ((-1)**r)*((theta**(2*r+1))/(factorial(2*r+1))) + return _total + + +if __name__ == "__main__": + print(maclaurin_sin(10)) + print(maclaurin_sin(-10)) + print(maclaurin_sin(10, 15)) + print(maclaurin_sin(-10, 15)) + print(maclaurin_sin("10")) + print(maclaurin_sin(10, -30)) + print(maclaurin_sin(10, 30.5)) + print(maclaurin_sin(10, "30")) From d95d329fac391b4e00b306314054c72535e40109 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 10:00:31 +0000 Subject: [PATCH 02/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/maclaurin_sin.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 5ad641011bb5..07b1308abc10 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -36,14 +36,20 @@ def maclaurin_sin(theta, accuracy=30): ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy """ - if not isinstance(accuracy, int) or accuracy <= 0 or type(theta) not in [int, float]: - raise ValueError('maclaurin_sin() requires an int or float value for theta and positive int for accuracy') + if ( + not isinstance(accuracy, int) + or accuracy <= 0 + or type(theta) not in [int, float] + ): + raise ValueError( + "maclaurin_sin() requires an int or float value for theta and positive int for accuracy" + ) theta = float(theta) _total = 0 for r in range(accuracy): - _total += ((-1)**r)*((theta**(2*r+1))/(factorial(2*r+1))) + _total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) return _total From 36e80859a66350396002c7afd0fb10b10a0928c1 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Thu, 20 Oct 2022 23:21:50 +1300 Subject: [PATCH 03/16] added type hints and fixed line overflows --- maths/maclaurin_sin.py | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 07b1308abc10..eba6a487192d 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -1,15 +1,17 @@ -# Maclaurin series approximation of sine +""" +https://en.wikipedia.org/wiki/Taylor_series#Trigonometric_functions +""" from math import factorial -def maclaurin_sin(theta, accuracy=30): +def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ - Returns the maclaurin approximation of sine + Finds the maclaurin approximation of sin + :param theta: the angle to which sin is found :param accuracy: the degree of accuracy wanted minimum ~ 1.5 theta :return: the value of sine in radians - >>> maclaurin_sin(10) -0.54402111088927 >>> maclaurin_sin(-10) @@ -21,36 +23,30 @@ def maclaurin_sin(theta, accuracy=30): >>> maclaurin_sin("10") Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy >>> maclaurin_sin(10, -30) Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy >>> maclaurin_sin(10, 30.5) Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy >>> maclaurin_sin(10, "30") Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires an int or float value for theta and positive int for accuracy + ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy """ - if ( - not isinstance(accuracy, int) - or accuracy <= 0 - or type(theta) not in [int, float] - ): - raise ValueError( - "maclaurin_sin() requires an int or float value for theta and positive int for accuracy" - ) + if not isinstance(accuracy, int) or accuracy <= 0 or type(theta) not in [int, float]: + raise ValueError('maclaurin_sin() requires int/float for theta and +ive int for accuracy') theta = float(theta) _total = 0 for r in range(accuracy): - _total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) - return _total + _total += ((-1)**r)*((theta**(2*r+1))/(factorial(2*r+1))) + return float(_total) if __name__ == "__main__": From 068020a55a6c943aae09873e5a3cbb4624693f84 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 10:24:59 +0000 Subject: [PATCH 04/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/maclaurin_sin.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index eba6a487192d..469bebb20c8e 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -38,14 +38,20 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy """ - if not isinstance(accuracy, int) or accuracy <= 0 or type(theta) not in [int, float]: - raise ValueError('maclaurin_sin() requires int/float for theta and +ive int for accuracy') + if ( + not isinstance(accuracy, int) + or accuracy <= 0 + or type(theta) not in [int, float] + ): + raise ValueError( + "maclaurin_sin() requires int/float for theta and +ive int for accuracy" + ) theta = float(theta) _total = 0 for r in range(accuracy): - _total += ((-1)**r)*((theta**(2*r+1))/(factorial(2*r+1))) + _total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) return float(_total) From aa5f20383870a31c647a4fbf42db37a93e62e5fe Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Thu, 20 Oct 2022 23:30:03 +1300 Subject: [PATCH 05/16] removed incompatable type examples --- maths/maclaurin_sin.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 469bebb20c8e..ff519558411e 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -56,11 +56,4 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: if __name__ == "__main__": - print(maclaurin_sin(10)) - print(maclaurin_sin(-10)) print(maclaurin_sin(10, 15)) - print(maclaurin_sin(-10, 15)) - print(maclaurin_sin("10")) - print(maclaurin_sin(10, -30)) - print(maclaurin_sin(10, 30.5)) - print(maclaurin_sin(10, "30")) From d03beffad3e0f1618ed7d5c28a9ce387701d3808 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Thu, 20 Oct 2022 23:42:46 +1300 Subject: [PATCH 06/16] Update maths/maclaurin_sin.py Co-authored-by: Caeden Perelli-Harris --- maths/maclaurin_sin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index ff519558411e..338179cb3f7b 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -41,7 +41,7 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: if ( not isinstance(accuracy, int) or accuracy <= 0 - or type(theta) not in [int, float] + or not isinstance(theta, (int, float)) ): raise ValueError( "maclaurin_sin() requires int/float for theta and +ive int for accuracy" From afd4d469792d7ef4e7587ae48f3720eb84ccec3d Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Thu, 20 Oct 2022 23:46:16 +1300 Subject: [PATCH 07/16] changed error details --- maths/maclaurin_sin.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 338179cb3f7b..278d9d919316 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -23,36 +23,37 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: >>> maclaurin_sin("10") Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy + ValueError: maclaurin_sin() requires a int or float for theta >>> maclaurin_sin(10, -30) Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy + ValueError: maclaurin_sin() requires a positive int for accuracy >>> maclaurin_sin(10, 30.5) Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy + ValueError: maclaurin_sin() requires a positive int for accuracy >>> maclaurin_sin(10, "30") Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires int/float for theta and +ive int for accuracy + ValueError: maclaurin_sin() requires a positive int for accuracy """ - if ( - not isinstance(accuracy, int) - or accuracy <= 0 - or not isinstance(theta, (int, float)) - ): + if not isinstance(theta, (int, float)): raise ValueError( - "maclaurin_sin() requires int/float for theta and +ive int for accuracy" + "maclaurin_sin() requires a int or float for theta" + ) + + if not isinstance(accuracy, int) or accuracy <= 0: + raise ValueError( + "maclaurin_sin() requires a positive int for accuracy" ) theta = float(theta) - _total = 0 + total = 0 for r in range(accuracy): - _total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) - return float(_total) + total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) + return float(total) if __name__ == "__main__": From 43c2b53a9c13005b233bbedb0a5611e9066c40de Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 10:47:39 +0000 Subject: [PATCH 08/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/maclaurin_sin.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 278d9d919316..4200b2a16ae4 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -39,14 +39,10 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError( - "maclaurin_sin() requires a int or float for theta" - ) + raise ValueError("maclaurin_sin() requires a int or float for theta") if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError( - "maclaurin_sin() requires a positive int for accuracy" - ) + raise ValueError("maclaurin_sin() requires a positive int for accuracy") theta = float(theta) From 222d683841d3356dcbfe8d2902b9a9aa94589fb8 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Thu, 20 Oct 2022 23:56:24 +1300 Subject: [PATCH 09/16] fixed grammatical errors --- maths/maclaurin_sin.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 4200b2a16ae4..17fa8699451c 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -23,7 +23,7 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: >>> maclaurin_sin("10") Traceback (most recent call last): ... - ValueError: maclaurin_sin() requires a int or float for theta + ValueError: maclaurin_sin() requires either an int or float for theta >>> maclaurin_sin(10, -30) Traceback (most recent call last): ... @@ -39,10 +39,14 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError("maclaurin_sin() requires a int or float for theta") + raise ValueError( + "maclaurin_sin() requires either an int or float for theta" + ) if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError("maclaurin_sin() requires a positive int for accuracy") + raise ValueError( + "maclaurin_sin() requires a positive int for accuracy" + ) theta = float(theta) From 05073531be0560c82a5f641678e901213944dd03 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 10:57:38 +0000 Subject: [PATCH 10/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/maclaurin_sin.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 17fa8699451c..9fe0a71f1942 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -39,14 +39,10 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError( - "maclaurin_sin() requires either an int or float for theta" - ) + raise ValueError("maclaurin_sin() requires either an int or float for theta") if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError( - "maclaurin_sin() requires a positive int for accuracy" - ) + raise ValueError("maclaurin_sin() requires a positive int for accuracy") theta = float(theta) From 257bb32f7cb6282a8d4405faf763798f12844045 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Fri, 21 Oct 2022 14:13:05 +1300 Subject: [PATCH 11/16] improved function accuracy and added test case --- maths/maclaurin_sin.py | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 9fe0a71f1942..91bfbaf89d5d 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -1,7 +1,7 @@ """ https://en.wikipedia.org/wiki/Taylor_series#Trigonometric_functions """ -from math import factorial +from math import factorial, pi def maclaurin_sin(theta: float, accuracy: int = 30) -> float: @@ -12,14 +12,18 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: :param accuracy: the degree of accuracy wanted minimum ~ 1.5 theta :return: the value of sine in radians + + >>> from math import isclose, sin + >>> all(isclose(maclaurin_sin(x, 50), sin(x)) for x in range(-25, 25)) + True >>> maclaurin_sin(10) - -0.54402111088927 + -0.544021110889369 >>> maclaurin_sin(-10) - 0.54402111088927 + 0.5440211108893703 >>> maclaurin_sin(10, 15) - -0.5429111519640644 + -0.5440211108893689 >>> maclaurin_sin(-10, 15) - 0.5429111519640644 + 0.5440211108893703 >>> maclaurin_sin("10") Traceback (most recent call last): ... @@ -39,18 +43,28 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError("maclaurin_sin() requires either an int or float for theta") + raise ValueError( + "maclaurin_sin() requires either an int or float for theta" + ) if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError("maclaurin_sin() requires a positive int for accuracy") + raise ValueError( + "maclaurin_sin() requires a positive int for accuracy" + ) theta = float(theta) + div = theta // (2 * pi) + theta = theta - (2 * div * pi) + total = 0 for r in range(accuracy): total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) - return float(total) + return total if __name__ == "__main__": + print(maclaurin_sin(10)) + print(maclaurin_sin(-10)) print(maclaurin_sin(10, 15)) + print(maclaurin_sin(-10, 15)) From 3952724c87563731e49dcb27bd5ed85aea0f1c7c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 01:13:54 +0000 Subject: [PATCH 12/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/maclaurin_sin.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 91bfbaf89d5d..407df7e807b1 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -43,14 +43,10 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError( - "maclaurin_sin() requires either an int or float for theta" - ) + raise ValueError("maclaurin_sin() requires either an int or float for theta") if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError( - "maclaurin_sin() requires a positive int for accuracy" - ) + raise ValueError("maclaurin_sin() requires a positive int for accuracy") theta = float(theta) From f276cb22c97e05c3d6e4ab8dbbde35dd6fa1967e Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Fri, 21 Oct 2022 19:32:58 +1300 Subject: [PATCH 13/16] Update maths/maclaurin_sin.py Co-authored-by: Christian Clauss --- maths/maclaurin_sin.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 407df7e807b1..5c89f87d1a66 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -49,13 +49,12 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: raise ValueError("maclaurin_sin() requires a positive int for accuracy") theta = float(theta) - div = theta // (2 * pi) - theta = theta - (2 * div * pi) - - total = 0 - for r in range(accuracy): - total += ((-1) ** r) * ((theta ** (2 * r + 1)) / (factorial(2 * r + 1))) + theta -= 2 * div * pi + return sum( + ((-1) ** r) * ((theta ** (2 * r + 1)) / factorial(2 * r + 1)) + for r in range(accuracy) + ) return total From 655c0503ca04ea4e9e6b4160de82d1aabc8ba217 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Fri, 21 Oct 2022 19:38:37 +1300 Subject: [PATCH 14/16] removed redundant return --- maths/maclaurin_sin.py | 1 - 1 file changed, 1 deletion(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index 5c89f87d1a66..b0159f3e7975 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -55,7 +55,6 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: ((-1) ** r) * ((theta ** (2 * r + 1)) / factorial(2 * r + 1)) for r in range(accuracy) ) - return total if __name__ == "__main__": From 921f361f00064657e19b9f5f7b645c9d71bbe2c9 Mon Sep 17 00:00:00 2001 From: Chris O <46587501+ChrisO345@users.noreply.github.com> Date: Fri, 21 Oct 2022 19:58:55 +1300 Subject: [PATCH 15/16] fixed pytest --- maths/maclaurin_sin.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index b0159f3e7975..d1e18f8a0508 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -43,16 +43,20 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError("maclaurin_sin() requires either an int or float for theta") + raise ValueError( + "maclaurin_sin() requires either an int or float for theta" + ) if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError("maclaurin_sin() requires a positive int for accuracy") + raise ValueError( + "maclaurin_sin() requires a positive int for accuracy" + ) theta = float(theta) div = theta // (2 * pi) theta -= 2 * div * pi return sum( - ((-1) ** r) * ((theta ** (2 * r + 1)) / factorial(2 * r + 1)) + (((-1) ** r) * ((theta ** (2 * r + 1)) / factorial(2 * r + 1))) for r in range(accuracy) ) From cea7c637dcf4cbaa2f18e70b78e9ef887b250304 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 07:01:07 +0000 Subject: [PATCH 16/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/maclaurin_sin.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/maths/maclaurin_sin.py b/maths/maclaurin_sin.py index d1e18f8a0508..3c27ccf63d70 100644 --- a/maths/maclaurin_sin.py +++ b/maths/maclaurin_sin.py @@ -43,20 +43,16 @@ def maclaurin_sin(theta: float, accuracy: int = 30) -> float: """ if not isinstance(theta, (int, float)): - raise ValueError( - "maclaurin_sin() requires either an int or float for theta" - ) + raise ValueError("maclaurin_sin() requires either an int or float for theta") if not isinstance(accuracy, int) or accuracy <= 0: - raise ValueError( - "maclaurin_sin() requires a positive int for accuracy" - ) + raise ValueError("maclaurin_sin() requires a positive int for accuracy") theta = float(theta) div = theta // (2 * pi) theta -= 2 * div * pi return sum( - (((-1) ** r) * ((theta ** (2 * r + 1)) / factorial(2 * r + 1))) + (((-1) ** r) * ((theta ** (2 * r + 1)) / factorial(2 * r + 1))) for r in range(accuracy) )