Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add skew-symmetric BLAS operations #805

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
Open

Add skew-symmetric BLAS operations #805

wants to merge 11 commits into from

Commits on Apr 26, 2024

  1. Add a negsc level-0 scalar operation.

    This operation negates a scalar (both real and imaginary parts).
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    6740b1f View commit details
    Browse the repository at this point in the history
  2. Add/modify level-0 scalar macros.

    - Add `bli_?negs/bli_?negris` to negate a scalar.
    - Add `bli_?setr0s` to zero out only the real part of a complex scalar.
    - Add (void) to silence unused variable warnings in several level-0 macros.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    9c0cec8 View commit details
    Browse the repository at this point in the history
  3. Add utility operations for skew-symmetric matrices.

    Add `mkskewsymm` and `mkskewherm` operations to explicit skew-symmetrize or skew-hermitize a matrix. For a skew-symmetric matrix, the diagonal is explicitly set to zero, while for a skew-hermitian matrix the real part of the diagonal is set to zero.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    2df3293 View commit details
    Browse the repository at this point in the history
  4. Add new matrix structures.

    Add `BLIS_SKEW_SYMMETRIC` and `BLIS_SKEW_HERMITIAN` matrix structures along with associated help functions and macros. Note that this requires increasing the number of bits used to represent a `struc_t` in the `obj_t::info` member. A compile-time check has also been added to prevent against accidental bit overflow in the future.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    adad99c View commit details
    Browse the repository at this point in the history
  5. Add a setrd level-1d operation.

    This operation sets only the real part of a matrix diagonal to the given value.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    3a52b71 View commit details
    Browse the repository at this point in the history
  6. Change dotaxpyf microkernel signature.

    The function signature for dotaxpyf has been changed to allow different `alpha` values for the dot and axpy sub-problems. This is needed to support skew-symmetric operations which differ in more than just conjugation of A and A^T.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    b986782 View commit details
    Browse the repository at this point in the history
  7. Add level-2 skew-BLAS operations.

    Add `skmv` (skew-symmetric matrix times vector), `shmv` (skew-hermitian matrix times vector), `skr2` (skew-symmetric rank-2 update), and `shr2` (skew-hermitian rank-2 update) operations. Note that a rank-1 skew-symmetric update is not possible, and a rank-1 skew-hermitian update is not particularly useful.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    9ecaf53 View commit details
    Browse the repository at this point in the history
  8. Update reference packing kernels.

    The reference packing kernels have been updated to support skew-symmetric and skew-hermitian matrix structures. No updates to the dense reference packing kernel (`bli_?packm_ckx_<arch>_ref`) or to any optimized packing kernels, since `bli_?packm_struc_cxk` handles the negation of the unstored region by modifying `kappa`.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    3914a55 View commit details
    Browse the repository at this point in the history
  9. Add level-3 skew-BLAS operations.

    Add `skmm` (skew-symmetric matrix times dense matrix), `shmm` (skew-hermitian matrix times dense matrix), `skr2k` (skew-symmetric rank-2k update), and `shr2k` (skew-hermitian rank-2k update) operations. Note that a rank-k skew-symmetric update is not possible, and a rank-k skew-hermitian update is not particularly useful.
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    f571143 View commit details
    Browse the repository at this point in the history
  10. Typo fix in configure

    [ci skip]
    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    06829d0 View commit details
    Browse the repository at this point in the history
  11. Trigger CI build

    devinamatthews committed Apr 26, 2024
    Configuration menu
    Copy the full SHA
    129ce04 View commit details
    Browse the repository at this point in the history