-
Implement C++ functions using the Eigen library to perform matrix-matrix multiplication and matrix inversion.
-
Provide Python bindings using pybind11 for the implemented code.
-
Use CMake and setuptools with pyproject.toml to set up the build process.
-
Write a Python script to test the performance of the Eigen-based operations. Implement a log_execution_time decorator to print the execution time of each function.
-
Compare the execution time of these operations to equivalent NumPy operations (e.g., numpy.matmul for multiplication and numpy.linalg.inv for inversion). Use a large matrix (e.g., ) of random integers between 0 and 1000 for the test.