diff --git a/examples/python/sparse.py b/examples/python/sparse.py index 03f1ad22e69ec7024ae06b9e37b83106d0d05a86..bb143d62bfa39c7ba4b569dd5c85782050e3d6ee 100644 --- a/examples/python/sparse.py +++ b/examples/python/sparse.py @@ -1,14 +1,17 @@ import loopy as lp +import numpy as np k = lp.make_kernel([ "{ [i] : 0 <= i < m }", "{ [j] : 0 <= j < length }"], """ - rowstart = rowstarts[i] - rowend = rowstarts[1 + i] - length = rowend + (-1)*rowstart - rowsum = 0 {id=zerosum} - rowsum = rowsum + x[-1 + colindices[-1 + rowstart + j]]*values[-1 + rowstart + j] {dep=zerosum} - y[i] = rowsum + <> rowstart = rowstarts[i] + <> rowend = rowstarts[i] + <> length = rowend - rowstart + y[i] = sum(j, values[rowstart+j] * x[colindices[rowstart + j]]) """) -print(k) + +k = lp.add_and_infer_dtypes(k, { + "values,x": np.float64, "rowstarts,colindices": k.index_dtype + }) +print(lp.generate_code(k)[0])