/*** initTokens($offset) ***/ $ref(output, $offset) = $convert_$elementType(initialOutputs)_$cgType(output)($val(initialOutputs, $offset)); $send(output, 0) /**/ /***fireBlock***/ $get(input, 0) $ref(output) = $ref(input); $send(output, 0) /**/
/*** sharedBlock ***/ $super() int $actorClass(i); int $actorClass(index); $targetType(input) $actorClass(factor); /**/ /*** sharedBlock2 ***/ $targetType(input) $actorClass(datum_$targetType(input)); /**/ /*** initBlock ***/ $actorSymbol(_taps) = $clone_$cgType(taps)($ref(taps)); $super() /**/ /*** fireBlock ***/ // First update the taps. $actorClass(index) = ($val(errorDelay) * $val(decimation)) + $val(decimationPhase); $actorClass(factor) = $multiply_$cgType(error)_$cgType(stepSize)($ref(error), $val(stepSize)); for ($actorClass(i) = 0; $actorClass(i) < $size(taps); $actorClass(i)++) { // The data item to use here should be "index" in the past, // where an index of zero would be the current input. $actorClass(datum_$targetType(input)) = $actorSymbol(_data)[($actorSymbol(_mostRecent) + $actorClass(index) - 1) % $actorClass(length)]; $actorSymbol(_taps).payload.$cgType(taps)->elements[$actorClass(i)] += ($actorClass(factor) * $actorClass(datum_$targetType(input))); $actorClass(index)++; } // Update the tapValues output.
/***preinitBlock($type)***/ $type $actorSymbol(result); /**/ /***initSum()***/ $actorSymbol(result) = $zero_$cgType(output)(); /**/ /***plusBlock($channel, $type1, $type2)***/ if ($hasToken(plus#$channel)) { $actorSymbol(result) = $add_$type1_$type2($actorSymbol(result), $get(plus#$channel)); } /**/ /***minusBlock($channel, $type1, $type2)***/ if ($hasToken(minus#$channel)) { $actorSymbol(result) = $subtract_$type1_$type2($actorSymbol(result), $get(minus#$channel)); } /**/ /***outputBlock***/ $put(output, $actorSymbol(result)); /**/
/*** fireBlock ***/ $ref(output) = $cgType(input)_get($ref(input), $ref(index)); /**/
/***scaleOnLeft***/ $ref(output) = $multiply_$cgType(input)_$cgType(factor)($ref(input), $val(factor)); /**/ /***scaleOnRight***/ $ref(output) = $multiply_$cgType(factor)_$cgType(input)($val(factor), $ref(input)); /**/
/***fireBlock***/ $ref(output) = $val(($cgType(output)) value); /**/