bluss / matrixmultiply

General matrix multiplication of f32 and f64 matrices in Rust. Supports matrices with general strides.
https://docs.rs/matrixmultiply/
Apache License 2.0
209 stars 25 forks source link

Add experimental support for complex: cgemm/zgemm #58

Closed bluss closed 2 years ago

bluss commented 2 years ago

Use the feature name "cgemm" for cgemm/zgemm methods; start them off by adding fallback implementations using 4x2 kernels.

CGemmOptions added as a placeholder - can later include options for conjugating either operand (transpose not required - the strides provide that freedom already).

Extensive updates for benchmarks, a simple argument parser makes it easier to use.

Better testing, refactoring some common code and better test coverage.

Complex is using the representation [f64; 2] here which is representation compatible in memory with C and with num_complex.