#######################################
## DINAC Automi cellulari.

Dinac = function (f,x,t,col="red")
{n=length(x)
tab=Gft(t,n,x1=0,y1=0,dx=n,dy=t)
polygon(tab$r)
for (i in 1:t) {for (j in 1:n) if (x[j])
polygon(Gft.casella(tab,i,j),col=col)
x=f(x)}}

Dinac.alfa.aw1 = function (k)
{u=M.rapp2(k,8); v=c()
for (i in 1:8) if (u[i]) v=c(v,8-i)
Mfb.alfa(v)}

Dinac.alfa.aw2 = function (k)
{u=M.rapp2(k,32); v=c()
for (i in 1:32) if (u[i]) v=c(v,32-i)
Mfb.alfa(v)}

Dinac.eps.aw1 = function (x,a)
{n=length(x)
P.quale(a,1,c(x[n],x[1],x[2]),
  n,c(x[n-1],x[n],x[1]),
  c(x[a-1],x[a],x[a+1]))}

Dinac.eps.aw2 = function (x,a)
{n=length(x)
P.quale(a,1,c(x[n-1],x[n],x[1],x[2],x[3]),
  2,c(x[n],x[1],x[2],x[3],x[4]),
  n-1,c(x[n-3],x[n-2],x[n-1],x[n],x[1]),
  n,c(x[n-2],x[n-1],x[n],x[1],x[2]),
  c(x[a-2],x[a-1],x[a],x[a+1],x[a+2]))}

Dinac.fun = function (eps,alfa)
function (x)
{n=length(x); y=numeric(n)
for (a in 1:n) y[a]=alfa(eps(x,a))
y}