3 import ca.uqac.lif.cep.Connector;
4 import ca.uqac.lif.cep.GroupProcessor;
5 import ca.uqac.lif.cep.functions.ApplyFunction;
6 import ca.uqac.lif.cep.functions.Constant;
7 import ca.uqac.lif.cep.functions.Cumulate;
8 import ca.uqac.lif.cep.functions.CumulativeFunction;
9 import ca.uqac.lif.cep.functions.FunctionTree;
10 import ca.uqac.lif.cep.functions.StreamVariable;
11 import ca.uqac.lif.cep.functions.TurnInto;
12 import ca.uqac.lif.cep.tmf.Fork;
13 import ca.uqac.lif.cep.util.Numbers;
21 ApplyFunction exp =
new ApplyFunction(
new FunctionTree(
24 new Constant(order)));
25 Connector.connect(f, 0, exp, 0);
26 Cumulate sum_p =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
27 Connector.connect(exp, sum_p);
28 TurnInto one =
new TurnInto(1);
29 Connector.connect(f, 1, one, 0);
30 Cumulate sum_one =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
31 Connector.connect(one, sum_one);
32 ApplyFunction div =
new ApplyFunction(Numbers.division);
33 Connector.connect(sum_p, 0, div, 0);
34 Connector.connect(sum_one, 0, div, 1);
35 addProcessors(f, exp, sum_p, one, sum_one, div);
36 associateInput(0, f, 0);
37 associateOutput(0, div, 0);