/** UpSample This actor upsamples an input stream by an integer factor by inserting tokens with value zero. The upsample factor is given by the factor parameter. On each firing, this actor reads one token from the input produces factor tokens on the output port. All but one of these is a zero-valued token of the same type as the input. The remaining one is the token read from the input. The position of this remaining one is determined by the phase parameter. This parameter has a value between 0 and factor-1. If it is 0, then the input token is the last output token. If it is factor-1, then it is the first output, followed by zeros. Thus, if this actor is followed by the DownSample actor with the same factor and phase, the combination has no effect.

By default, factor is 2, and phase is the expression "factor-1". This means that by default, the input token that is read is the first one produced at the output.

This actor is data polymorphic. It can accept any token type on the input that supports the zero() method, and it sends output tokens of that type. @author JE */ actor UpSample [T] (Integer factor = 2, Integer phase = factor-1) T input ==> T output: action [a] ==> [b] repeat factor var List[T] b = [ if i = phase then a else zero(a) end : for Integer i in Integers(1, factor)] endaction endactor