static Matrix listToMatrix(int _w, L data) { int n = l(data); int _h = n/_w; if (_w*_h != n) fail("Bad size", +n, +_w, +_h); class ListToMatrix extends AbstractMatrix { *() { super(_w, _h); } int xyToIndex(int x, int y) { ret y*w+x; } public A get(int x, int y) { ret data.get(xyToIndex(x, y)); } public void set(int x, int y, A a) { data.set(xyToIndex(x, y), a); } }; ret new ListToMatrix; }