Devin Matthews
Devin Matthews
This PR adds new BLAS-like level 3 operations which include a diagonal matrix "sandwiched" between two other matrices: - `bli_gemdm`: `C = alpha*A*D*B + beta*C` - `bli_gemdmt`: `C = alpha*tri[ul](A*D*B)...
This is a major refactor that places the vast majority of the logic, physical block sizes, preferences, kernel/variant pointers, etc. under the direct purview of the control tree. This refactor...
See https://github.com/devinamatthews/tblis/pull/56 for an example of where GCC can sometimes be detected as the wrong compiler based on the symlink used to invoke it. The solution there is to also...
This PR adds a number of level-2 and level-3 skew-symmetric (and skew-hermitian) BLAS operations, defining the essential operations of a "Skew-BLAS" interface. These operations have been added as full 1st-class...
In some cases, especially when using autotools, the value of `CC` or `CXX` may have spaces in it. For example, in my project `CXX` is detected as `g++ -std=c++17`. Should...
First, just enable BLAS tests and see if it fails.
The operations `bli_(inv)?scal[vdm]` are alone in having a `conjalpha` parameter (in the typed API and kernel definitions), while also taking an input vector (matrix diagonal, matrix) `x` which does *not*...
The level0 macros `bli_scal2s`, `bli_scal2js`, `bli_scal2ris`, and `bli_scal2jris` (collectively, `y = alpha*conj?(x)`) all boil down to the same implementation which, for complex numbers, writes the real part of `y` before...
A temporary C microtile is used in various places, such as on the diagonal of a symmetric matrix (GEMMT) where care must be taken not to write to the unstored...