File: surface.dsp

package info (click to toggle)
faust 2.79.3%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 397,496 kB
  • sloc: cpp: 278,433; ansic: 116,164; javascript: 18,529; vhdl: 14,052; sh: 13,884; java: 5,900; objc: 3,852; python: 3,222; makefile: 2,655; cs: 1,672; lisp: 1,146; ruby: 954; yacc: 586; xml: 471; lex: 247; awk: 110; tcl: 26
file content (42 lines) | stat: -rw-r--r-- 904 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Modeling a 2D surface with a von neumann 

surface(X,Y) = route(X*Y, X*Y, par(x, X, par(y, Y, neighborhood(X,Y).vonNeumann(x,y) ) ) );
                            
// von Neumann neighborhood (or 4-neighborhood)
neighborhood(X,Y) = environment {

    vonNeumann(x,y) =
        (coord(x,y), coord(x+1,y)),
        (coord(x,y), coord(x-1,y)),
        (coord(x,y), coord(x,y+1)),
        (coord(x,y), coord(x,y-1));
    
    Moore(x,y) =
        (coord(x,y), coord(x+1,y)),
        (coord(x,y), coord(x-1,y)),
        (coord(x,y), coord(x,y+1)),
        (coord(x,y), coord(x,y-1)),
        (coord(x,y), coord(x+1,y+1)),
        (coord(x,y), coord(x-1,y-1)),
        (coord(x,y), coord(x-1,y+1)),
        (coord(x,y), coord(x+1,y-1));
    
    coord(x,y) = (1+x+y*X) * (x>=0) * (x<X) * (y>=0) * (y<Y);
};

process = surface(2,2);

/*

    0   1   2

    3   4   5

    6   7   8


    0   1

    2   3

*/