#Make sure that cython extension is installed
#> pip install --user cython
# The source code of the mul16u_G88 extension needs to be downloaded first
> curl -s "https://ehw.fit.vutbr.cz/evoapproxlib/v1.2022?folder=multiplers/16x16_unsigned/pareto_pwr_mse&file=mul16u_G88.c&pyx=bash" | bash
#Finally, the extension can be used in a Python script as follows
> python
import pyximport; pyximport.install()
import mul16u_G88
wce = e = 0
for i in range(0,2**16):
for j in range(0,2**16):
diff = abs(mul16u_G88.mul(i,j) - (i*j))
if diff > wce: wce = diff
e += diff
print('average error magnitude (mae)',e/(2.0**(32)))
print('worst-case error magnitude (wce)',wce)