20 import ca.uqac.lif.cep.Connector;
21 import ca.uqac.lif.cep.GroupProcessor;
22 import ca.uqac.lif.cep.functions.ApplyFunction;
23 import ca.uqac.lif.cep.functions.Cumulate;
24 import ca.uqac.lif.cep.functions.CumulativeFunction;
25 import ca.uqac.lif.cep.functions.TurnInto;
26 import ca.uqac.lif.cep.tmf.Fork;
27 import ca.uqac.lif.cep.tmf.QueueSource;
28 import ca.uqac.lif.cep.tmf.VariableStutter;
29 import ca.uqac.lif.cep.util.Numbers;
30 import ca.uqac.lif.cep.util.Randomize;
37 QueueSource values =
new QueueSource();
38 values.setEvents(l_values);
40 QueueSource numbers =
new QueueSource();
41 numbers.setEvents(l_numbers);
43 VariableStutter vs =
new VariableStutter();
44 Connector.connect(values, 0, vs, 0);
45 Connector.connect(numbers, 0, vs, 1);
46 Fork fork1 =
new Fork(2);
47 Connector.connect(vs, fork1);
48 TurnInto one =
new TurnInto(1);
49 Connector.connect(fork1, 0, one, 0);
50 Cumulate sum_one =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
51 Connector.connect(one, sum_one);
52 Cumulate sum_values =
new Cumulate(
new CumulativeFunction<Number>(Numbers.addition));
53 Connector.connect(fork1, 1, sum_values, 0);
54 Fork fork2 =
new Fork(2);
55 Connector.connect(sum_values, fork2);
56 Randomize rand =
new Randomize(-0.5f * noise, 0.5f * noise);
57 Connector.connect(fork2, 0, rand, 0);
58 ApplyFunction add =
new ApplyFunction(Numbers.addition);
59 Connector.connect(rand, 0, add, 0);
60 Connector.connect(fork2, 1, add, 1);
61 addProcessors(values, numbers, vs, fork1, one, sum_one, fork2, rand, add, sum_values);
62 associateOutput(0, sum_one, 0);
63 associateOutput(1, add, 0);