FLINT3.7.0-dev

nfloat_complex_mat_mul, nfloat_complex_mat_mul_fixed, nfloat_complex_mat_mul_block, nfloat_complex_mat_mul_reorder

Synopsis#include <flint/nfloat.h>
int nfloat_complex_mat_mul(gr_mat_t C, const gr_mat_t A, const gr_mat_t B, gr_ctx_t ctx)source
int nfloat_complex_mat_mul_fixed(gr_mat_t C, const gr_mat_t A, const gr_mat_t B, slong max_extra_prec, gr_ctx_t ctx)source
int nfloat_complex_mat_mul_block(gr_mat_t C, const gr_mat_t A, const gr_mat_t B, slong min_block_size, gr_ctx_t ctx)source
int nfloat_complex_mat_mul_reorder(gr_mat_t C, const gr_mat_t A, const gr_mat_t B, gr_ctx_t ctx)source

Complex matrix multiplication, as for the real matrices. The fixed-point and block versions use three real products (the Karatsuba formula (AC - BD) + ((A + B)(C + D) - AC - BD)i); nfloat_complex_mat_mul_reorder separates the real and imaginary parts into real matrices and multiplies them with nfloat_mat_mul (with fewer products when A or B is real). nfloat_complex_mat_mul uses the reordering for real factors and for parts that are not well scaled.

Cite this page

The FLINT team, “nfloat_complex_mat_mul, nfloat_complex_mat_mul_fixed, nfloat_complex_mat_mul_block, nfloat_complex_mat_mul_reorder (nfloat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nfloat/nfloat_complex_mat_mul.html (generated 2026-10-20).