/matmul

Matrix Multiplication using AVX2, Strassen and FrodoKEM's matrix multiplication

Primary LanguageC

In this repository, I have integrated Strassen's Matrix Multiplication with FrodoKEM's AVX2-based Matrix Multiplication, adding a size switch to optimize execution time and reduce cache miss rates.

Project structure

  • matrix.c: redundant file, just initializes the rand.
  • mul.c: matrix multiplication functions (includes strassen and FrodoKEM's algorithm)
  • mem.c: matrix allocation and deallocation functions
  • ops.c: simple matrix operations (addition and subtraction)
  • utils.c: handles matrix padding, unpadding, filling with random data, equality checks, and includes a non-trivial logarithm function (using a de Bruijn sequence).