matrixmultiply 0.3.11

General matrix multiplication for f32 and f64 matrices. Operates on matrices with general layout (they can use arbitrary row and column stride). Detects and uses SIMD features on x86/x86-64 and AArch64 transparently for higher performance. Uses a microkernel strategy, so that the implementation is easy to parallelize and optimize. Supports multithreading.
Documentation
macro_rules! is_aarch64_feature_detected_ {
    ($name:tt) => {{
        #[cfg(feature="std")]
        {
            // For testing purposes, we can make sure only one specific feature
            // is enabled by setting MMTEST_FEATURE=featurename (all others
            // disabled). This does not force it to be detected, it must also be.
             crate::allow_feature($name) && std::arch::is_aarch64_feature_detected!($name)
        }
        #[cfg(not(feature="std"))]
        {
            // For testing purposes, we can make sure only one specific feature
            // is enabled by setting MMTEST_FEATURE=featurename (all others
            // disabled). This does not force it to be detected, it must also
            // be. In the `no_std` case, the `is_86_feature_detected` macro is
            // not available, so we have to fall back to checking whether the
            // feature is enabled at compile-time.
            crate::allow_feature($name) && cfg!(target_feature=$name)
        }
    }};
}