Not a great bug report, but I ran into something strange when trying to test error diffusion to scale.
Here is the code:
opts:0N,10*!21
pk:{x@*<{x|-x}x-y}
fs:{*|+{*|pr[x;*y;z]}[x]\[(&#*y;0N);y]}
pre:{+/y*0^z@(!#z)+/:|x}
pres:{({+/y*z@x-1}.*g;+/(pre.'1_g:+g@/:\:!g:(x[0;1];x[1])@\:=**x)@\:)}
spec:(0 0N 7;3 5 1)
l:(w:&0<spec)-*+&^spec
f:.[spec;]'+w
(ne;pr0):pres@(l;f)
fldrow:{(e,*y;(*|y),'(e:z-n;n:(*x)^pk[x]z:z+ne[*y]%16))}
pr:{fldrow[x]/[(,0.0;(!0;!0)); z+pr0[y]%16]}
I can run something like \t fs[0 1]@rws:700 1000#0.5 as many times as I like, but once I try to increase the dimensions by a factor of 10, not only does it fail, but I can't run this any more.
\t fs[0 1]@rws:700 1000#0.5
903
\t fs[0 1]@rws:700 1000#0.5
916
\t fs[0 1]@rws:700 1000#0.5
910
\t fs[0 1]@rws:7000 10000#0.5
'length
{+/y*0^z@(!#z)+/:|x}
^
{fldrow[x]/[(,0.0;(!0;!0)); z+pr0[y]%16]}
^
{*|pr[x;*y;z]}
^
{*|+{*|pr[x;*y;z]}[x]\[(&#*y;0N);y]}
^
..
\t fs[0 1]@rws:700 1000#0.5
'length
{+/y*0^z@(!#z)+/:|x}
^
{fldrow[x]/[(,0.0;(!0;!0)); z+pr0[y]%16]}
^
{*|pr[x;*y;z]}
^
{*|+{*|pr[x;*y;z]}[x]\[(&#*y;0N);y]}
^
..
Interesting also that it fails relatively quickly. Even \t fs[0 1]@rws:6650 9500#0.5 doesn't fail, but it does take several minutes.
Not a great bug report, but I ran into something strange when trying to test error diffusion to scale.
Here is the code:
```
opts:0N,10*!21
pk:{x@*<{x|-x}x-y}
fs:{*|+{*|pr[x;*y;z]}[x]\[(&#*y;0N);y]}
pre:{+/y*0^z@(!#z)+/:|x}
pres:{({+/y*z@x-1}.*g;+/(pre.'1_g:+g@/:\:!g:(x[0;1];x[1])@\:=**x)@\:)}
spec:(0 0N 7;3 5 1)
l:(w:&0<spec)-*+&^spec
f:.[spec;]'+w
(ne;pr0):pres@(l;f)
fldrow:{(e,*y;(*|y),'(e:z-n;n:(*x)^pk[x]z:z+ne[*y]%16))}
pr:{fldrow[x]/[(,0.0;(!0;!0)); z+pr0[y]%16]}
```
I can run something like `\t fs[0 1]@rws:700 1000#0.5` as many times as I like, but once I try to increase the dimensions by a factor of 10, not only does it fail, but I can't run this any more.
```
\t fs[0 1]@rws:700 1000#0.5
903
\t fs[0 1]@rws:700 1000#0.5
916
\t fs[0 1]@rws:700 1000#0.5
910
\t fs[0 1]@rws:7000 10000#0.5
'length
{+/y*0^z@(!#z)+/:|x}
^
{fldrow[x]/[(,0.0;(!0;!0)); z+pr0[y]%16]}
^
{*|pr[x;*y;z]}
^
{*|+{*|pr[x;*y;z]}[x]\[(&#*y;0N);y]}
^
..
\t fs[0 1]@rws:700 1000#0.5
'length
{+/y*0^z@(!#z)+/:|x}
^
{fldrow[x]/[(,0.0;(!0;!0)); z+pr0[y]%16]}
^
{*|pr[x;*y;z]}
^
{*|+{*|pr[x;*y;z]}[x]\[(&#*y;0N);y]}
^
..
```
Interesting also that it fails relatively quickly. Even `\t fs[0 1]@rws:6650 9500#0.5` doesn't fail, but it does take several minutes.