11def zero(m, n, image):
2- def (m_max, n_max ): dims(image)
3- if m >= 1 and m <= m_max and n >= 1 and n <= n_max : image ! (m, n)
2+ def (m_size, n_size ): dims(image)
3+ if m >= 0 and m < m_size and n >= 0 and n < n_size : image ! (m, n)
44 else: 0
55
66def wrap(m, n, image):
7- def (m_max, n_max ): dims(image)
8- image ! (((m - 1) % m_max) + 1, ((n - 1) % n_max) + 1 )
7+ def (m_size, n_size ): dims(image)
8+ image ! (m % m_size, n % n_size )
99
1010def extend(m, n, image):
11- def (m_max, n_max ): dims(image)
11+ def (m_size, n_size ): dims(image)
1212 def m_:
13- min(max(m, 1 ), m_max )
13+ min(max(m, 0 ), m_size - 1 )
1414 def n_:
15- min(max(n, 1 ), n_max )
15+ min(max(n, 0 ), n_size - 1 )
1616 image ! (m_, n_)
1717
1818def matrix_sum(matr):
1919 def (m, n): dims(matr)
20- foldl((+), 0, [matr ! (i, j) for (i, j) in range2d((1, 1 ), (m, n))])
20+ foldl((+), 0, [matr ! (i, j) for (i, j) in range2d((0, 0 ), (m - 1 , n - 1 ))])
2121
2222def convolve(image, kernel, lookup):
2323 def ((m, n), (i, j)):
@@ -26,7 +26,7 @@ def convolve(image, kernel, lookup):
2626 (i |quot| 2, j |quot| 2)
2727 def area: i * j
2828 def interMatrix(m_, n_):
29- [| lookup((( m_ + i_) - 1) - half_i, (( n_ + j_) - 1) - half_j, image) * kernel ! (i_, j_) for (i_, j_) in (i, j) |]
29+ [| lookup(m_ + i_ - half_i, n_ + j_ - half_j, image) * kernel ! (i_, j_) for (i_, j_) in (i, j) |]
3030
3131 [| matrix_sum(interMatrix(m_, n_)) |quot| area for (m_, n_) in (m, n) |]
3232
@@ -37,4 +37,4 @@ def mat_mul(a, b):
3737 error("Dimensions don't line up")
3838 else:
3939 @doc(f"""Intermediate matrix""")
40- [| sum([a!(i_, k) * b!(k, j_) for k in range(1 , n)]) for (i_, j_) in (m, j) |]
40+ [| sum([a!(i_, k) * b!(k, j_) for k in range(0 , n - 1 )]) for (i_, j_) in (m, j) |]
0 commit comments