This, in turn, takes advantage of the cache on the system. For systems with more than one level of cache, the blocking can be applied a second time to the order in which the blocks are used in the computation. Both of these levels of optimization are used in implementations such as ATLAS. More recently, implementations by Kazushige Goto have shown that blocking only for the L2 cache, combined with careful amortizing of copying to contiguous memory to reduce TLB misses, is superior to ATLAS. A highly tuned implementation based on these ideas is part of the GotoBLAS, OpenBLAS and BLIS. A common variation of is the , which calculates a complex product using "three real matrix multiplications and five real matrix additions instead of the conventional four real matrix multiplications and two real matrix additions", an algorithm similar to Strassen algorithm first described by Peter Ungar. Implementations Accelerate Apple's framework for macOS and iOS, which includes tuned versions of BLAS and LAPACK. Arm Performance Libraries Arm Performance Libraries, supporting Arm 64-bit AArch64-based processors, available from Arm. ATLAS Automatically Tuned Linear Algebra Software, an open source implementation of BLAS APIs for C and Fortran 77. BLIS BLAS-like Library Instantiation Software framework for rapid instantiation. Optimized for most modern CPUs. BLIS is a complete refactoring of the GotoBLAS that reduces the amount of code that must be written for a given platform. C++ AMP BLAS The C++ AMP BLAS Library is an open source implementation of BLAS for Microsoft's AMP language extension for Visual C++. cuBLAS Optimized BLAS for NVIDIA based GPU cards, requiring few additional library calls. NVBLAS Optimized BLAS for NVIDIA based GPU cards, providing only Level 3 functions, but as direct drop-in replacement for other BLAS libraries. clBLAS An OpenCL implementation of BLAS by AMD. Part of the AMD Compute Libraries. clBLAST A tuned OpenCL implementation of most of the BLAS api. Eigen BLAS A Fortran 77 and C BLAS library implemented on top of the MPL-licensed Eigen library, supporting x86, x86-64, ARM (NEON), and PowerPC architectures. ESSL IBM's Engineering and Scientific Subroutine Library, supporting the PowerPC architecture under AIX and Linux. GotoBLAS Kazushige Goto's BSD-licensed implementation of BLAS, tuned in particular for Intel Nehalem/Atom, VIA Nanoprocessor, AMD Opteron. GNU Scientific Library Multi-platform implementation of many numerical routines. Contains a CBLAS interface. HP MLIB HP's Math library supporting IA-64, PA-RISC, x86 and Opteron architecture under HP-UX and Linux.