Vectorization — Python model

The Python model is how Waveflow holds and computes array values: NumPy-backed, loop-free, and bit-exact with the hardware it generates. These pages cover the per-element-type numerics — the integer, float, fixed-point, and complex vectorized models, including the two paths (the .val NumPy escape hatch vs. the type-preserving operators) and the result-format rules.

For the synthesizable side — packing these arrays into Vitis C++ words, the lane loop, and the storage modes — see HLS.


Table of contents

  • Numerical operations - The numerical model shared by every vectorized element type — defining a vector, and the two compute paths: the raw .val NumPy escape hatch, and the type-preserving operators (a*b + c then an explicit quantize). Includes when to use which.
  • Integer vectorization - The integer vectorized model — IntField arrays as NumPy integer arrays, stored-integer semantics, and the single-64-bit dtype with a fail-fast guard above it.
  • Float vectorization - The float vectorized model — FloatField arrays as native NumPy float arrays, and when float fits versus fixed-point or integer.
  • Fixed-point vectorization - The fixed-point vectorized model — FixedField arrays, the two paths (.val NumPy escape hatch vs type-preserving operators), and the ap_fixed result-format growth.
  • Complex vectorization - The complex vectorized model — ComplexField arrays, complex arithmetic (cmult/cadd/conj), and the NumPy-vs-hardware complex-multiply edge.

This site uses Just the Docs, a documentation theme for Jekyll.