executeInto method

void executeInto(
  1. Float32List input,
  2. Float32List outRe,
  3. Float32List outIm
)

Zero-allocation API: caller provides output buffers for the complex spectrum.

Example:

final outRe = Float32List(plan.bins);
final outIm = Float32List(plan.bins);
plan.executeInto(frame, outRe, outIm);

Implementation

void executeInto(Float32List input, Float32List outRe, Float32List outIm) {
  if (outRe.length != bins) {
    throw ArgumentError('outRe length ${outRe.length} != bins $bins');
  }
  if (outIm.length != bins) {
    throw ArgumentError('outIm length ${outIm.length} != bins $bins');
  }

  final r = res;
  _loadInput(input);
  yl_fft_plan_execute_r2c(r.plan, r.input, r.re, r.im);

  outRe.setAll(0, r.re.asTypedList(bins));
  outIm.setAll(0, r.im.asTypedList(bins));
}