public void init() { final int N = 32; final int NLAGS = 8; add(new SplitJoin() { public void init() { setSplitter(DUPLICATE()); for (int l=0; l<NLAGS; l++) { final int lag = l; add(new Filter() { public void init() { input = new Channel(Float.TYPE, N); output = new Channel(Float.TYPE, 1); } public void work() { float sum = 0; for (int i=0; i<(N-lag); i++) sum += input.peekFloat(i) *input.peekFloat(i+lag); for (int i=0; i<N; i++) input.popFloat(); output.pushFloat(sum); } }); } setJoiner(ROUND_ROBIN()); } }); add(new Adder(NLAGS)); }
public void init(final int N, final int NFLAGS) { public void init() { setSplitter(DUPLICATE()); for (int l=0; l<NLAGS; l++) { final int lag = l; add(new Filter() { public void init() { input = new Channel(Float.TYPE, N); output = new Channel(Float.TYPE, 1); } public void work() { float sum = 0; for (int i=0; i<(N-lag); i++) sum += input.peekFloat(i) *input.peekFloat(i+lag); for (int i=0; i<N; i++) input.popFloat(); output.pushFloat(sum); } }); } setJoiner(ROUND_ROBIN()); }
    public void init() {	final int N = 32;	final int NLAGS = 8;	add(new SplitJoin() {		public void init() {		    setSplitter(DUPLICATE());		    for (int l=0; l<NLAGS; l++) {			final int lag = l;			add(new Filter() {				public void init() {				    input = new Channel(Float.TYPE, N);				    output = new Channel(Float.TYPE, 1);				}				public void work() {				    float sum = 0;				    for (int i=0; i<(N-lag); i++)					sum += input.peekFloat(i)					    *input.peekFloat(i+lag);				    for (int i=0; i<N; i++)					input.popFloat();				    output.pushFloat(sum);				}			    });		    }		    setJoiner(ROUND_ROBIN());		}	    });	add(new Adder(NLAGS));    }