I've never contributed to SciPy (or any other Python package, for that matter), but I have a super simple code that performs a 2-D discrete cosine transform using existing SciPy code for the 1-D discrete cosine transform. SciPy already has support for the 2-D (or N dimensional) fast fourier transform, but not for the 2-D discrete cosine transform. Looking at the SciPy code on GitHub, I see that most of the fourier-related code (everything in the fftpack module) is written in fortran, while the code I've put together is in Python (put together is an overstatement -- it's one line).
My question is this: I see this code as being pretty useful, and perhaps represents a good opportunity for me to contribute to SciPy. However, I definitely can't check all the boxes listed in the SciPy documentation regarding contributing code (e.g., I don't have "test units", nor do I really know what that is). How do I proceed in the process of contributing?
def dct2(x):
"""
x is a 2-D numpy array
"""
x = np.asarray(x, dtype=float)
return fftpack.dct(fftpack.dct(x).T).T
def idct2(x):
x = np.asarray(x, dtype=float)
return fftpack.idct(fftpack.idct(x.T).T)