Skip to content

Commit 533eea5

Browse files
authored
fix mypy annotations for arithmetic_analysis (TheAlgorithms#6040)
* fixed mypy annotations for arithmetic_analysis * shortened numpy references
1 parent e23c18f commit 533eea5

File tree

4 files changed

+29
-14
lines changed

4 files changed

+29
-14
lines changed

arithmetic_analysis/gaussian_elimination.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@
55

66

77
import numpy as np
8+
from numpy import float64
9+
from numpy.typing import NDArray
810

911

10-
def retroactive_resolution(coefficients: np.matrix, vector: np.ndarray) -> np.ndarray:
12+
def retroactive_resolution(
13+
coefficients: NDArray[float64], vector: NDArray[float64]
14+
) -> NDArray[float64]:
1115
"""
1216
This function performs a retroactive linear system resolution
1317
for triangular matrix
@@ -27,7 +31,7 @@ def retroactive_resolution(coefficients: np.matrix, vector: np.ndarray) -> np.nd
2731

2832
rows, columns = np.shape(coefficients)
2933

30-
x = np.zeros((rows, 1), dtype=float)
34+
x: NDArray[float64] = np.zeros((rows, 1), dtype=float)
3135
for row in reversed(range(rows)):
3236
sum = 0
3337
for col in range(row + 1, columns):
@@ -38,7 +42,9 @@ def retroactive_resolution(coefficients: np.matrix, vector: np.ndarray) -> np.nd
3842
return x
3943

4044

41-
def gaussian_elimination(coefficients: np.matrix, vector: np.ndarray) -> np.ndarray:
45+
def gaussian_elimination(
46+
coefficients: NDArray[float64], vector: NDArray[float64]
47+
) -> NDArray[float64]:
4248
"""
4349
This function performs Gaussian elimination method
4450
@@ -60,7 +66,7 @@ def gaussian_elimination(coefficients: np.matrix, vector: np.ndarray) -> np.ndar
6066
return np.array((), dtype=float)
6167

6268
# augmented matrix
63-
augmented_mat = np.concatenate((coefficients, vector), axis=1)
69+
augmented_mat: NDArray[float64] = np.concatenate((coefficients, vector), axis=1)
6470
augmented_mat = augmented_mat.astype("float64")
6571

6672
# scale the matrix leaving it triangular

arithmetic_analysis/in_static_equilibrium.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
"""
44
from __future__ import annotations
55

6-
from numpy import array, cos, cross, ndarray, radians, sin
6+
from numpy import array, cos, cross, float64, radians, sin
7+
from numpy.typing import NDArray
78

89

910
def polar_force(
@@ -27,7 +28,7 @@ def polar_force(
2728

2829

2930
def in_static_equilibrium(
30-
forces: ndarray, location: ndarray, eps: float = 10**-1
31+
forces: NDArray[float64], location: NDArray[float64], eps: float = 10**-1
3132
) -> bool:
3233
"""
3334
Check if a system is in equilibrium.
@@ -46,7 +47,7 @@ def in_static_equilibrium(
4647
False
4748
"""
4849
# summation of moments is zero
49-
moments: ndarray = cross(location, forces)
50+
moments: NDArray[float64] = cross(location, forces)
5051
sum_moments: float = sum(moments)
5152
return abs(sum_moments) < eps
5253

@@ -61,7 +62,7 @@ def in_static_equilibrium(
6162
]
6263
)
6364

64-
location = array([[0, 0], [0, 0], [0, 0]])
65+
location: NDArray[float64] = array([[0, 0], [0, 0], [0, 0]])
6566

6667
assert in_static_equilibrium(forces, location)
6768

arithmetic_analysis/jacobi_iteration_method.py

+9-5
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@
44
from __future__ import annotations
55

66
import numpy as np
7+
from numpy import float64
8+
from numpy.typing import NDArray
79

810

911
# Method to find solution of system of linear equations
1012
def jacobi_iteration_method(
11-
coefficient_matrix: np.ndarray,
12-
constant_matrix: np.ndarray,
13-
init_val: list,
13+
coefficient_matrix: NDArray[float64],
14+
constant_matrix: NDArray[float64],
15+
init_val: list[int],
1416
iterations: int,
1517
) -> list[float]:
1618
"""
@@ -99,7 +101,9 @@ def jacobi_iteration_method(
99101
if iterations <= 0:
100102
raise ValueError("Iterations must be at least 1")
101103

102-
table = np.concatenate((coefficient_matrix, constant_matrix), axis=1)
104+
table: NDArray[float64] = np.concatenate(
105+
(coefficient_matrix, constant_matrix), axis=1
106+
)
103107

104108
rows, cols = table.shape
105109

@@ -125,7 +129,7 @@ def jacobi_iteration_method(
125129

126130

127131
# Checks if the given matrix is strictly diagonally dominant
128-
def strictly_diagonally_dominant(table: np.ndarray) -> bool:
132+
def strictly_diagonally_dominant(table: NDArray[float64]) -> bool:
129133
"""
130134
>>> table = np.array([[4, 1, 1, 2], [1, 5, 2, -6], [1, 2, 4, -4]])
131135
>>> strictly_diagonally_dominant(table)

arithmetic_analysis/lu_decomposition.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@
66
from __future__ import annotations
77

88
import numpy as np
9+
import numpy.typing as NDArray
10+
from numpy import float64
911

1012

11-
def lower_upper_decomposition(table: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
13+
def lower_upper_decomposition(
14+
table: NDArray[float64],
15+
) -> tuple[NDArray[float64], NDArray[float64]]:
1216
"""Lower-Upper (LU) Decomposition
1317
1418
Example:

0 commit comments

Comments
 (0)