quat_image_multiply — QUAT algebra op

• Data kinds: qimage × qimage → qimage

• Call: import fullseye as fs; fs.ledger.quat_image_multiply(qimage, other, side) -> 'np.ndarray' (to call the implementation directly, import quatimage; quatimage.quat_image_multiply(qimage, other, side) -> 'np.ndarray'; from the registry, opsquat.get("quat_image_multiply"))

Usage

Hamilton product of a quaternion image with a quaternion or a field. → (H, W, 4).

side="left" computes other * qimage; side="right" computes qimage * other. There is no default — see _require_side. The two results are genuinely different objects, not a sign convention: measured on a standard-normal (32, 32, 4) field against a unit rotor, max|left - right| = 3.143 and mean|left - right| = 0.4948 on data whose own extreme is 3.372 — that is, the two answers differ by as much as the data itself. Neither raises, neither is NaN, and both look like a perfectly good quaternion image.

*other* is either a single quaternion (a (4,) array-like) or a full (H, W, 4) field of the same shape; anything else is refused rather than broadcast, because NumPy would happily broadcast a (H, 4) array along the wrong axis and produce an image-shaped answer to a different question.

Raises ValueError: either input is not a valid quaternion field; *other* is neither (4,) nor exactly qimage's shape; *side* is not 'left' / 'right'.

Detailed usage guide

• quaternion_monogenic family guide

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• quaternion_monogenic — py -3.11 examples/quaternion_monogenic.py

Ops the type connects to (they accept qimage as input)

quaternion_to_rgb · quat_norm · quat_conjugate_image · quat_normalize_image · monogenic_amplitude · monogenic_phase · monogenic_orientation · quat_color_rotate

Same category (algebra)

quat_conjugate_image · quat_normalize_image


*Provenance: quatimage.py — QUAT operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.