|
NumericAL
A header-only C++20 lexer built on REAL
|
Files | |
| amx.hpp | |
The matrix coprocessor of Apple's M-series chips (AMX), for the double matrix product. | |
| blas.hpp | |
The column-major semantics of the BLAS and LAPACK routines NumericAL stands in for (ddot, dgemm, dsyrk, dgemv, dtrsm, dgesv, dgetrf, dgetrs, dpotrf, dpotrs, dsyevd, dgesdd, dgeqrf, dorgqr, dgelsd, dgeev), as their reference implementations define them, over NumericAL's kernels: what the optional numerical_blas library exports with the Fortran calling convention (blas/numerical_blas.cpp), so that a program linked against BLAS and LAPACK, or a switch such as FlexiBLAS, can run on NumericAL. | |
| buffer.hpp | |
| numerical::buffer, the storage of the library's vectors, matrices and tensors: a std::vector whose elements constructed with no value are left uninitialised. | |
| decomposition.hpp | |
| Matrix factorisations and the algorithms built on them. | |
| eigen.hpp | |
| The eigenvalues and eigenvectors of a general square matrix. | |
| gemm.hpp | |
The matrix product kernel behind matrix * matrix and the einsum matmul path. | |
| matrix.hpp | |
| A dense, row-major, value-semantic matrix over a scalar type. | |
| numerical.hpp | |
| Single public header for NumericAL — include this to use the library. | |
| parallel.hpp | |
A minimal std::thread parallel-for for the hot kernels. | |
| simd.hpp | |
The native vector of float and double the kernels hold their lanes in (GNU vector extensions, under GCC and clang; a kernel keeps a scalar form beside it for other compilers). | |
| tensor.hpp | |
| A dense, row-major, N-dimensional tensor and Einstein summation. | |
| tensor_ops.hpp | |
| Element-wise arithmetic with NumPy's broadcasting, reductions, reshaping and creation of tensors. | |
| vector.hpp | |
| A dense, value-semantic vector over a scalar type. | |
| x86.hpp | |
The x86-64 tiles of the double matrix product: AVX-512 and AVX2 with FMA, chosen at run time. | |