Copy disabled (too large)
Download .txt
Showing preview only (107,123K chars total). Download the full file to get everything.
Repository: OpenMathLib/OpenBLAS
Branch: develop
Commit: a89142fd5d37
Files: 12546
Total size: 174.8 MB
Directory structure:
gitextract_5_eh2w8i/
├── .cirrus.yml
├── .cirun.yml
├── .drone.yml
├── .github/
│ └── workflows/
│ ├── apple_m.yml
│ ├── arm64_graviton.yml
│ ├── c910v.yml
│ ├── codspeed-bench.yml
│ ├── docs.yml
│ ├── dynamic_arch.yml
│ ├── harmonyos.yml
│ ├── loongarch64.yml
│ ├── loongarch64_clang.yml
│ ├── mips64.yml
│ ├── nightly-Homebrew-build.yml
│ ├── riscv64_vector.yml
│ └── windows_arm64.yml
├── .gitignore
├── .travis.yml
├── BACKERS.md
├── CMakeLists.txt
├── CONTRIBUTORS.md
├── Changelog.txt
├── GotoBLAS_00License.txt
├── GotoBLAS_01Readme.txt
├── GotoBLAS_02QuickInstall.txt
├── GotoBLAS_03FAQ.txt
├── GotoBLAS_04FAQ.txt
├── GotoBLAS_05LargePage.txt
├── GotoBLAS_06WeirdPerformance.txt
├── Jenkinsfile
├── Jenkinsfile.pwr
├── LICENSE
├── Makefile
├── Makefile.alpha
├── Makefile.arm
├── Makefile.arm64
├── Makefile.csky
├── Makefile.e2k
├── Makefile.generic
├── Makefile.ia64
├── Makefile.install
├── Makefile.loongarch64
├── Makefile.mips
├── Makefile.mips64
├── Makefile.power
├── Makefile.prebuild
├── Makefile.riscv64
├── Makefile.rule
├── Makefile.sparc
├── Makefile.system
├── Makefile.tail
├── Makefile.wasm
├── Makefile.x86
├── Makefile.x86_64
├── Makefile.zarch
├── README.md
├── SECURITY.md
├── TargetList.txt
├── USAGE.md
├── appveyor.yml
├── azure-pipelines.yml
├── benchmark/
│ ├── Make_exe.sh
│ ├── Makefile
│ ├── amax.c
│ ├── amin.c
│ ├── asum.c
│ ├── axpby.c
│ ├── axpy.c
│ ├── bench.h
│ ├── cholesky.c
│ ├── copy.c
│ ├── cula_wrapper.c
│ ├── dot.c
│ ├── geev.c
│ ├── gemm.c
│ ├── gemm3m.c
│ ├── gemv.c
│ ├── ger.c
│ ├── gesv.c
│ ├── getri.c
│ ├── hbmv.c
│ ├── hemm.c
│ ├── hemv.c
│ ├── her.c
│ ├── her2.c
│ ├── her2k.c
│ ├── herk.c
│ ├── hpmv.c
│ ├── iamax.c
│ ├── iamin.c
│ ├── imax.c
│ ├── imin.c
│ ├── linpack.c
│ ├── max.c
│ ├── min.c
│ ├── nrm2.c
│ ├── omatcopy.c
│ ├── plot-filter.sh
│ ├── plot-header
│ ├── potrf.c
│ ├── pybench/
│ │ ├── README.md
│ │ ├── benchmarks/
│ │ │ └── bench_blas.py
│ │ ├── meson.build
│ │ ├── openblas_wrap/
│ │ │ ├── __init__.py
│ │ │ ├── blas_lapack.pyf.src
│ │ │ ├── generate_f2pymod.py
│ │ │ └── meson.build
│ │ └── scipy_openblas.pc
│ ├── rot.c
│ ├── rotm.c
│ ├── scal.c
│ ├── scripts/
│ │ ├── NUMPY/
│ │ │ ├── cgemm.py
│ │ │ ├── cgemv.py
│ │ │ ├── daxpy.py
│ │ │ ├── ddot.py
│ │ │ ├── deig.py
│ │ │ ├── dgemm.py
│ │ │ ├── dgemv.py
│ │ │ ├── dgesv.py
│ │ │ ├── dsolve.py
│ │ │ ├── sdot.py
│ │ │ ├── sgemm.py
│ │ │ ├── sgemv.py
│ │ │ ├── zgemm.py
│ │ │ └── zgemv.py
│ │ ├── OCTAVE/
│ │ │ ├── cgemm.m
│ │ │ ├── cgemv.m
│ │ │ ├── deig.m
│ │ │ ├── dgemm.m
│ │ │ ├── dgemv.m
│ │ │ ├── dsolve.m
│ │ │ ├── sgemm.m
│ │ │ ├── sgemv.m
│ │ │ ├── zgemm.m
│ │ │ └── zgemv.m
│ │ ├── R/
│ │ │ ├── deig.R
│ │ │ ├── dgemm.R
│ │ │ └── dsolve.R
│ │ └── SCIPY/
│ │ ├── dsyrk.py
│ │ └── ssyrk.py
│ ├── smallscaling.c
│ ├── spmv.c
│ ├── spr.c
│ ├── spr2.c
│ ├── swap.c
│ ├── symm.c
│ ├── symv.c
│ ├── syr.c
│ ├── syr2.c
│ ├── syr2k.c
│ ├── syrk.c
│ ├── tplot-header
│ ├── tpmv.c
│ ├── tpsv.c
│ ├── trmm.c
│ ├── trmv.c
│ ├── trsm.c
│ ├── trsv.c
│ ├── zdot-intel.c
│ └── zdot.c
├── c_check
├── c_check.pl
├── cblas.h
├── cmake/
│ ├── OpenBLASConfig.cmake.in
│ ├── arch.cmake
│ ├── cc.cmake
│ ├── export.cmake
│ ├── f_check.cmake
│ ├── fc.cmake
│ ├── kernel.cmake
│ ├── lapack.cmake
│ ├── lapacke.cmake
│ ├── openblas.pc.in
│ ├── os.cmake
│ ├── prebuild.cmake
│ ├── system.cmake
│ ├── system_check.cmake
│ └── utils.cmake
├── common.h
├── common_alpha.h
├── common_arm.h
├── common_arm64.h
├── common_b.h
├── common_c.h
├── common_csky.h
├── common_d.h
├── common_e2k.h
├── common_ia64.h
├── common_interface.h
├── common_lapack.h
├── common_level1.h
├── common_level2.h
├── common_level3.h
├── common_linux.h
├── common_loongarch64.h
├── common_macro.h
├── common_mips.h
├── common_mips64.h
├── common_param.h
├── common_power.h
├── common_q.h
├── common_reference.h
├── common_riscv64.h
├── common_s.h
├── common_sb.h
├── common_sh.h
├── common_sparc.h
├── common_stackalloc.h
├── common_thread.h
├── common_wasm.h
├── common_x.h
├── common_x86.h
├── common_x86_64.h
├── common_z.h
├── common_zarch.h
├── cpp_thread_test/
│ ├── CMakeLists.txt
│ ├── Makefile
│ ├── cpp_thread_safety_common.h
│ ├── dgemm_thread_safety.cpp
│ └── dgemv_thread_safety.cpp
├── cpuid.S
├── cpuid.h
├── cpuid_alpha.c
├── cpuid_arm.c
├── cpuid_arm64.c
├── cpuid_ia64.c
├── cpuid_loongarch64.c
├── cpuid_mips.c
├── cpuid_mips64.c
├── cpuid_power.c
├── cpuid_riscv64.c
├── cpuid_sparc.c
├── cpuid_x86.c
├── cpuid_zarch.c
├── cpuid_zarch.h
├── ctest/
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── Makefile
│ ├── auxiliary.c
│ ├── c_c2chke.c
│ ├── c_c3chke.c
│ ├── c_c3chke_3m.c
│ ├── c_cblas1.c
│ ├── c_cblas2.c
│ ├── c_cblas3.c
│ ├── c_cblas3_3m.c
│ ├── c_cblat1.f
│ ├── c_cblat1c.c
│ ├── c_cblat2.f
│ ├── c_cblat2c.c
│ ├── c_cblat3.f
│ ├── c_cblat3_3m.f
│ ├── c_cblat3c.c
│ ├── c_cblat3c_3m.c
│ ├── c_d2chke.c
│ ├── c_d3chke.c
│ ├── c_dblas1.c
│ ├── c_dblas2.c
│ ├── c_dblas3.c
│ ├── c_dblat1.f
│ ├── c_dblat1c.c
│ ├── c_dblat2.f
│ ├── c_dblat2c.c
│ ├── c_dblat3.f
│ ├── c_dblat3c.c
│ ├── c_s2chke.c
│ ├── c_s3chke.c
│ ├── c_sblas1.c
│ ├── c_sblas2.c
│ ├── c_sblas3.c
│ ├── c_sblat1.f
│ ├── c_sblat1c.c
│ ├── c_sblat2.f
│ ├── c_sblat2c.c
│ ├── c_sblat3.f
│ ├── c_sblat3c.c
│ ├── c_xerbla.c
│ ├── c_z2chke.c
│ ├── c_z3chke.c
│ ├── c_z3chke_3m.c
│ ├── c_zblas1.c
│ ├── c_zblas2.c
│ ├── c_zblas3.c
│ ├── c_zblas3_3m.c
│ ├── c_zblat1.f
│ ├── c_zblat1c.c
│ ├── c_zblat2.f
│ ├── c_zblat2c.c
│ ├── c_zblat3.f
│ ├── c_zblat3_3m.f
│ ├── c_zblat3c.c
│ ├── c_zblat3c_3m.c
│ ├── cblas_test.h
│ ├── cin2
│ ├── cin3
│ ├── cin3_3m
│ ├── constant.c
│ ├── din2
│ ├── din3
│ ├── sin2
│ ├── sin3
│ ├── zin2
│ ├── zin3
│ └── zin3_3m
├── ctest.c
├── ctest1.c
├── ctest2.c
├── docs/
│ ├── about.md
│ ├── build_system.md
│ ├── ci.md
│ ├── developers.md
│ ├── distributing.md
│ ├── extensions.md
│ ├── faq.md
│ ├── index.md
│ ├── install.md
│ ├── runtime_variables.md
│ └── user_manual.md
├── driver/
│ ├── level2/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile
│ │ ├── gbmv_k.c
│ │ ├── gbmv_thread.c
│ │ ├── gemv_thread.c
│ │ ├── ger_thread.c
│ │ ├── sbgemv_thread.c
│ │ ├── sbmv_k.c
│ │ ├── sbmv_thread.c
│ │ ├── spmv_k.c
│ │ ├── spmv_thread.c
│ │ ├── spr2_k.c
│ │ ├── spr2_thread.c
│ │ ├── spr_k.c
│ │ ├── spr_thread.c
│ │ ├── symv_thread.c
│ │ ├── syr2_k.c
│ │ ├── syr2_thread.c
│ │ ├── syr_k.c
│ │ ├── syr_thread.c
│ │ ├── tbmv_L.c
│ │ ├── tbmv_U.c
│ │ ├── tbmv_thread.c
│ │ ├── tbsv_L.c
│ │ ├── tbsv_U.c
│ │ ├── tpmv_L.c
│ │ ├── tpmv_U.c
│ │ ├── tpmv_thread.c
│ │ ├── tpsv_L.c
│ │ ├── tpsv_U.c
│ │ ├── trmv_L.c
│ │ ├── trmv_U.c
│ │ ├── trmv_thread.c
│ │ ├── trsv_L.c
│ │ ├── trsv_U.c
│ │ ├── zgbmv_k.c
│ │ ├── zhbmv_k.c
│ │ ├── zher2_k.c
│ │ ├── zher_k.c
│ │ ├── zhpmv_k.c
│ │ ├── zhpr2_k.c
│ │ ├── zhpr_k.c
│ │ ├── zsbmv_k.c
│ │ ├── zspmv_k.c
│ │ ├── zspr2_k.c
│ │ ├── zspr_k.c
│ │ ├── zsyr2_k.c
│ │ ├── zsyr_k.c
│ │ ├── ztbmv_L.c
│ │ ├── ztbmv_U.c
│ │ ├── ztbsv_L.c
│ │ ├── ztbsv_U.c
│ │ ├── ztpmv_L.c
│ │ ├── ztpmv_U.c
│ │ ├── ztpsv_L.c
│ │ ├── ztpsv_U.c
│ │ ├── ztrmv_L.c
│ │ ├── ztrmv_U.c
│ │ ├── ztrsv_L.c
│ │ └── ztrsv_U.c
│ ├── level3/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile
│ │ ├── gemm.c
│ │ ├── gemm3m.c
│ │ ├── gemm3m_level3.c
│ │ ├── gemm_batch_thread.c
│ │ ├── gemm_thread_m.c
│ │ ├── gemm_thread_mn.c
│ │ ├── gemm_thread_n.c
│ │ ├── gemm_thread_variable.c
│ │ ├── hemm3m_k.c
│ │ ├── level3.c
│ │ ├── level3_gemm3m_thread.c
│ │ ├── level3_syr2k.c
│ │ ├── level3_syrk.c
│ │ ├── level3_syrk_threaded.c
│ │ ├── level3_thread.c
│ │ ├── symm3m_k.c
│ │ ├── symm_k.c
│ │ ├── syr2k_k.c
│ │ ├── syr2k_kernel.c
│ │ ├── syrk_k.c
│ │ ├── syrk_kernel.c
│ │ ├── syrk_thread.c
│ │ ├── trmm_L.c
│ │ ├── trmm_R.c
│ │ ├── trsm_L.c
│ │ ├── trsm_R.c
│ │ ├── zhemm_k.c
│ │ ├── zher2k_k.c
│ │ ├── zher2k_kernel.c
│ │ ├── zherk_beta.c
│ │ ├── zherk_k.c
│ │ ├── zherk_kernel.c
│ │ └── zsyrk_beta.c
│ ├── mapper/
│ │ ├── Makefile
│ │ ├── device_setup
│ │ └── mapper.c
│ └── others/
│ ├── CMakeLists.txt
│ ├── Makefile
│ ├── abs.c
│ ├── blas_l1_thread.c
│ ├── blas_server.c
│ ├── blas_server_callback.c
│ ├── blas_server_omp.c
│ ├── blas_server_win32.c
│ ├── detect_riscv64.c
│ ├── divtable.c
│ ├── dynamic.c
│ ├── dynamic_arm64.c
│ ├── dynamic_loongarch64.c
│ ├── dynamic_mips64.c
│ ├── dynamic_power.c
│ ├── dynamic_riscv64.c
│ ├── dynamic_zarch.c
│ ├── init.c
│ ├── lamc3.c
│ ├── lamch.c
│ ├── lsame.c
│ ├── memory.c
│ ├── memory_qalloc.c
│ ├── openblas_env.c
│ ├── openblas_error_handle.c
│ ├── openblas_get_config.c
│ ├── openblas_get_num_procs.c
│ ├── openblas_get_num_threads.c
│ ├── openblas_get_parallel.c
│ ├── openblas_set_num_threads.c
│ ├── parameter.c
│ ├── profile.c
│ └── xerbla.c
├── exports/
│ ├── Makefile
│ ├── check_objs.sh
│ ├── dllinit.c
│ ├── gensymbol
│ └── gensymbol.pl
├── f_check
├── f_check.pl
├── ftest.f
├── ftest2.f
├── ftest3.f
├── gen_config_h.c
├── getarch.c
├── getarch_2nd.c
├── interface/
│ ├── CMakeLists.txt
│ ├── Makefile
│ ├── asum.c
│ ├── axpby.c
│ ├── axpy.c
│ ├── bf16dot.c
│ ├── bf16to.c
│ ├── copy.c
│ ├── create
│ ├── create.pl
│ ├── dot.c
│ ├── dsdot.c
│ ├── gbmv.c
│ ├── geadd.c
│ ├── gemm.c
│ ├── gemm_batch.c
│ ├── gemm_batch_strided.c
│ ├── gemmt.c
│ ├── gemv.c
│ ├── ger.c
│ ├── imatcopy.c
│ ├── imax.c
│ ├── lapack/
│ │ ├── fortran/
│ │ │ └── dlaqr5.f
│ │ ├── gesv.c
│ │ ├── getf2.c
│ │ ├── getrf.c
│ │ ├── getrs.c
│ │ ├── laed3.c
│ │ ├── larf.c.obsolete
│ │ ├── laswp.c
│ │ ├── lauu2.c
│ │ ├── lauum.c
│ │ ├── potf2.c
│ │ ├── potrf.c
│ │ ├── potri.c
│ │ ├── trti2.c
│ │ ├── trtri.c
│ │ ├── trtrs.c
│ │ ├── zgetf2.c
│ │ ├── zgetrf.c
│ │ ├── zgetrs.c
│ │ ├── zlaswp.c
│ │ ├── zlauu2.c
│ │ ├── zlauum.c
│ │ ├── zpotf2.c
│ │ ├── zpotrf.c
│ │ ├── zpotri.c
│ │ ├── ztrti2.c
│ │ ├── ztrtri.c
│ │ └── ztrtrs.c
│ ├── max.c
│ ├── netlib/
│ │ ├── cgemv.f
│ │ ├── dgemv.f
│ │ ├── sgemv.f
│ │ └── zgemv.f
│ ├── nrm2.c
│ ├── omatcopy.c
│ ├── rot.c
│ ├── rotg.c
│ ├── rotm.c
│ ├── rotmg.c
│ ├── sbgemmt.c
│ ├── sbgemv.c
│ ├── sbmv.c
│ ├── scal.c
│ ├── sdsdot.c
│ ├── spmv.c
│ ├── spr.c
│ ├── spr2.c
│ ├── sum.c
│ ├── swap.c
│ ├── symm.c
│ ├── symv.c
│ ├── syr.c
│ ├── syr2.c
│ ├── syr2k.c
│ ├── syrk.c
│ ├── tbmv.c
│ ├── tbsv.c
│ ├── tobf16.c
│ ├── tpmv.c
│ ├── tpsv.c
│ ├── trmv.c
│ ├── trsm.c
│ ├── trsv.c
│ ├── xerbla.c
│ ├── zaxpby.c
│ ├── zaxpy.c
│ ├── zdot.c
│ ├── zgbmv.c
│ ├── zgeadd.c
│ ├── zgemv.c
│ ├── zger.c
│ ├── zhbmv.c
│ ├── zhemv.c
│ ├── zher.c
│ ├── zher2.c
│ ├── zhpmv.c
│ ├── zhpr.c
│ ├── zhpr2.c
│ ├── zimatcopy.c
│ ├── zomatcopy.c
│ ├── zrot.c
│ ├── zrotg.c
│ ├── zsbmv.c
│ ├── zscal.c
│ ├── zspmv.c
│ ├── zspr.c
│ ├── zspr2.c
│ ├── zswap.c
│ ├── zsymv.c
│ ├── zsyr.c
│ ├── zsyr2.c
│ ├── ztbmv.c
│ ├── ztbsv.c
│ ├── ztpmv.c
│ ├── ztpsv.c
│ ├── ztrmv.c
│ └── ztrsv.c
├── kernel/
│ ├── CMakeLists.txt
│ ├── Makefile
│ ├── Makefile.L1
│ ├── Makefile.L2
│ ├── Makefile.L3
│ ├── Makefile.LA
│ ├── alpha/
│ │ ├── KERNEL
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── asum.S
│ │ ├── axpy.S
│ │ ├── cabs.S
│ │ ├── cnrm2.S
│ │ ├── copy.S
│ │ ├── cscal.S
│ │ ├── dnrm2.S
│ │ ├── dot.S
│ │ ├── gemm_beta.S
│ │ ├── gemm_kernel_4x4.S
│ │ ├── gemv_n.S
│ │ ├── gemv_t.S
│ │ ├── iamax.S
│ │ ├── imax.S
│ │ ├── izamax.S
│ │ ├── lsame.S
│ │ ├── max.S
│ │ ├── rot.S
│ │ ├── scal.S
│ │ ├── snrm2.S
│ │ ├── staticbuffer.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── trsm_kernel_4x4_LN.S
│ │ ├── trsm_kernel_4x4_LT.S
│ │ ├── trsm_kernel_4x4_RT.S
│ │ ├── zamax.S
│ │ ├── zasum.S
│ │ ├── zaxpy.S
│ │ ├── zdot.S
│ │ ├── zgemm_beta.S
│ │ ├── zgemm_kernel_2x2.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_t.S
│ │ ├── znrm2.S
│ │ ├── zrot.S
│ │ ├── zscal.S
│ │ ├── zsum.S
│ │ ├── zswap.S
│ │ ├── ztrsm_kernel_2x2_LN.S
│ │ ├── ztrsm_kernel_2x2_LT.S
│ │ └── ztrsm_kernel_2x2_RT.S
│ ├── arm/
│ │ ├── KERNEL
│ │ ├── KERNEL.ARMV5
│ │ ├── KERNEL.ARMV6
│ │ ├── KERNEL.ARMV7
│ │ ├── KERNEL.CORTEXA15
│ │ ├── KERNEL.CORTEXA9
│ │ ├── Makefile
│ │ ├── amax.c
│ │ ├── amax_vfp.S
│ │ ├── amin.c
│ │ ├── asum.c
│ │ ├── asum_vfp.S
│ │ ├── axpby.c
│ │ ├── axpy.c
│ │ ├── axpy_vfp.S
│ │ ├── ccopy_vfp.S
│ │ ├── cdot_vfp.S
│ │ ├── cgemm_kernel_2x2_vfp.S
│ │ ├── cgemm_kernel_2x2_vfpv3.S
│ │ ├── cgemm_ncopy_2_vfp.S
│ │ ├── cgemm_tcopy_2_vfp.S
│ │ ├── cgemv_n_vfp.S
│ │ ├── cgemv_t_vfp.S
│ │ ├── copy.c
│ │ ├── ctrmm_kernel_2x2_vfp.S
│ │ ├── ctrmm_kernel_2x2_vfpv3.S
│ │ ├── dcopy_vfp.S
│ │ ├── ddot_vfp.S
│ │ ├── dgemm_kernel_4x2_vfp.S
│ │ ├── dgemm_kernel_4x4_vfpv3.S
│ │ ├── dgemm_ncopy_2_vfp.S
│ │ ├── dgemm_ncopy_4_vfp.S
│ │ ├── dgemm_tcopy_4_vfp.S
│ │ ├── dot.c
│ │ ├── dtrmm_kernel_4x2_vfp.S
│ │ ├── dtrmm_kernel_4x4_vfpv3.S
│ │ ├── gemv_n.c
│ │ ├── gemv_n_vfp.S
│ │ ├── gemv_n_vfpv3.S
│ │ ├── gemv_t.c
│ │ ├── gemv_t_vfp.S
│ │ ├── gemv_t_vfpv3.S
│ │ ├── iamax.c
│ │ ├── iamax_vfp.S
│ │ ├── iamin.c
│ │ ├── imax.c
│ │ ├── imin.c
│ │ ├── izamax.c
│ │ ├── izamin.c
│ │ ├── max.c
│ │ ├── min.c
│ │ ├── nrm2.c
│ │ ├── nrm2_vfp.S
│ │ ├── nrm2_vfpv3.S
│ │ ├── omatcopy_cn.c
│ │ ├── omatcopy_ct.c
│ │ ├── omatcopy_rn.c
│ │ ├── omatcopy_rt.c
│ │ ├── rot.c
│ │ ├── rot_vfp.S
│ │ ├── scal.c
│ │ ├── scal_vfp.S
│ │ ├── scopy_vfp.S
│ │ ├── sdot_vfp.S
│ │ ├── sgemm_kernel_4x2_vfp.S
│ │ ├── sgemm_kernel_4x4_vfpv3.S
│ │ ├── sgemm_ncopy_2_vfp.S
│ │ ├── sgemm_ncopy_4_vfp.S
│ │ ├── sgemm_tcopy_4_vfp.S
│ │ ├── strmm_kernel_4x2_vfp.S
│ │ ├── strmm_kernel_4x4_vfpv3.S
│ │ ├── sum.c
│ │ ├── sum_vfp.S
│ │ ├── swap.c
│ │ ├── swap_vfp.S
│ │ ├── symv_L.c
│ │ ├── symv_U.c
│ │ ├── zamax.c
│ │ ├── zamin.c
│ │ ├── zasum.c
│ │ ├── zaxpby.c
│ │ ├── zaxpy.c
│ │ ├── zcopy.c
│ │ ├── zcopy_vfp.S
│ │ ├── zdot.c
│ │ ├── zdot_vfp.S
│ │ ├── zgemm_kernel_2x2_vfp.S
│ │ ├── zgemm_kernel_2x2_vfpv3.S
│ │ ├── zgemm_ncopy_2_vfp.S
│ │ ├── zgemm_tcopy_2_vfp.S
│ │ ├── zgemv_n.c
│ │ ├── zgemv_n_vfp.S
│ │ ├── zgemv_t.c
│ │ ├── zgemv_t_vfp.S
│ │ ├── znrm2.c
│ │ ├── zomatcopy_cn.c
│ │ ├── zomatcopy_cnc.c
│ │ ├── zomatcopy_ct.c
│ │ ├── zomatcopy_ctc.c
│ │ ├── zomatcopy_rn.c
│ │ ├── zomatcopy_rnc.c
│ │ ├── zomatcopy_rt.c
│ │ ├── zomatcopy_rtc.c
│ │ ├── zrot.c
│ │ ├── zscal.c
│ │ ├── zsum.c
│ │ ├── zswap.c
│ │ ├── ztrmm_kernel_2x2_vfp.S
│ │ └── ztrmm_kernel_2x2_vfpv3.S
│ ├── arm64/
│ │ ├── KERNEL
│ │ ├── KERNEL.A64FX
│ │ ├── KERNEL.AMPERE1
│ │ ├── KERNEL.ARMV8
│ │ ├── KERNEL.ARMV8SVE
│ │ ├── KERNEL.ARMV9SME
│ │ ├── KERNEL.CORTEXA510
│ │ ├── KERNEL.CORTEXA53
│ │ ├── KERNEL.CORTEXA55
│ │ ├── KERNEL.CORTEXA57
│ │ ├── KERNEL.CORTEXA710
│ │ ├── KERNEL.CORTEXA72
│ │ ├── KERNEL.CORTEXA73
│ │ ├── KERNEL.CORTEXA76
│ │ ├── KERNEL.CORTEXX1
│ │ ├── KERNEL.CORTEXX2
│ │ ├── KERNEL.EMAG8180
│ │ ├── KERNEL.FALKOR
│ │ ├── KERNEL.FT2000
│ │ ├── KERNEL.NEOVERSEN1
│ │ ├── KERNEL.NEOVERSEN2
│ │ ├── KERNEL.NEOVERSEV1
│ │ ├── KERNEL.NEOVERSEV2
│ │ ├── KERNEL.THUNDERX
│ │ ├── KERNEL.THUNDERX2T99
│ │ ├── KERNEL.THUNDERX3T110
│ │ ├── KERNEL.TSV110
│ │ ├── KERNEL.VORTEX
│ │ ├── KERNEL.VORTEXM4
│ │ ├── KERNEL.generic
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── asum.S
│ │ ├── axpy.S
│ │ ├── axpy_sve.c
│ │ ├── bgemm_beta_neon.c
│ │ ├── bgemm_kernel_2vlx4_neoversev1.c
│ │ ├── bgemm_kernel_2vlx4_neoversev1_impl.c
│ │ ├── bgemm_ncopy_2vl_neoversev1.c
│ │ ├── bgemm_ncopy_4_neoversev1.c
│ │ ├── bgemm_tcopy_2vl_neoversev1.c
│ │ ├── bgemm_tcopy_4_neoversev1.c
│ │ ├── bgemv_n_sve_v3x4.c
│ │ ├── casum.S
│ │ ├── casum_thunderx2t99.c
│ │ ├── cgemm_kernel_4x4.S
│ │ ├── cgemm_kernel_8x4.S
│ │ ├── cgemm_kernel_8x4_cortexa53.c
│ │ ├── cgemm_kernel_8x4_thunderx2t99.S
│ │ ├── cgemm_kernel_sve_v1x4.S
│ │ ├── cgemm_ncopy_sve_v1.c
│ │ ├── cgemm_tcopy_sve_v1.c
│ │ ├── copy.S
│ │ ├── copy_thunderx2t99.c
│ │ ├── csum.S
│ │ ├── csum_thunderx2t99.c
│ │ ├── ctrmm_kernel_4x4.S
│ │ ├── ctrmm_kernel_8x4.S
│ │ ├── ctrmm_kernel_sve_v1x4.S
│ │ ├── dasum_thunderx2t99.c
│ │ ├── daxpy_thunderx.c
│ │ ├── daxpy_thunderx2t99.S
│ │ ├── ddot_thunderx.c
│ │ ├── dgemm_beta.S
│ │ ├── dgemm_kernel_4x4.S
│ │ ├── dgemm_kernel_4x4_cortexa53.c
│ │ ├── dgemm_kernel_4x8.S
│ │ ├── dgemm_kernel_8x4.S
│ │ ├── dgemm_kernel_8x4_thunderx2t99.S
│ │ ├── dgemm_kernel_sve_v1x8.S
│ │ ├── dgemm_kernel_sve_v2x8.S
│ │ ├── dgemm_ncopy_4.S
│ │ ├── dgemm_ncopy_8.S
│ │ ├── dgemm_small_kernel_nn_sve.c
│ │ ├── dgemm_small_kernel_nt_sve.c
│ │ ├── dgemm_small_kernel_tn_sve.c
│ │ ├── dgemm_small_kernel_tt_sve.c
│ │ ├── dgemm_tcopy_4.S
│ │ ├── dgemm_tcopy_8.S
│ │ ├── dot.S
│ │ ├── dot.c
│ │ ├── dot_kernel_asimd.c
│ │ ├── dot_kernel_sve.c
│ │ ├── dot_kernel_sve_v8.c
│ │ ├── dot_thunderx.c
│ │ ├── dsum_thunderx2t99.c
│ │ ├── dtrmm_kernel_4x4.S
│ │ ├── dtrmm_kernel_4x8.S
│ │ ├── dtrmm_kernel_8x4.S
│ │ ├── dtrmm_kernel_sve_v1x8.S
│ │ ├── dznrm2_thunderx2t99.c
│ │ ├── dznrm2_thunderx2t99_fast.c
│ │ ├── gemm_ncopy_complex_sve_v1x4.c
│ │ ├── gemm_ncopy_sve_v1x8.c
│ │ ├── gemm_small_kernel_permit_sve.c
│ │ ├── gemm_tcopy_complex_sve_v1x4.c
│ │ ├── gemm_tcopy_sve_v1x8.c
│ │ ├── gemv_n.S
│ │ ├── gemv_n_sve.c
│ │ ├── gemv_n_sve_v1x3.c
│ │ ├── gemv_n_sve_v4x3.c
│ │ ├── gemv_t.S
│ │ ├── gemv_t_sve.c
│ │ ├── gemv_t_sve_v1x3.c
│ │ ├── gemv_t_sve_v4x3.c
│ │ ├── ger_sve_v1x3.c
│ │ ├── iamax.S
│ │ ├── iamax_thunderx2t99.c
│ │ ├── izamax.S
│ │ ├── izamax_thunderx2t99.c
│ │ ├── nrm2.S
│ │ ├── rot.S
│ │ ├── rot.c
│ │ ├── rot_kernel_c.c
│ │ ├── rot_kernel_sve.c
│ │ ├── sasum_thunderx2t99.c
│ │ ├── sbgemm_beta_neoversen2.c
│ │ ├── sbgemm_beta_neoversev1.c
│ │ ├── sbgemm_kernel_8x4_neoversen2.c
│ │ ├── sbgemm_kernel_8x4_neoversen2_impl.c
│ │ ├── sbgemm_kernel_8x8_neoversen2.c
│ │ ├── sbgemm_kernel_8x8_neoversen2_impl.c
│ │ ├── sbgemm_ncopy_4_neoversen2.c
│ │ ├── sbgemm_ncopy_8_neoversen2.c
│ │ ├── sbgemm_tcopy_4_neoversen2.c
│ │ ├── sbgemm_tcopy_8_neoversen2.c
│ │ ├── sbgemv_n_neon.c
│ │ ├── sbgemv_t_bfdot.c
│ │ ├── scal.S
│ │ ├── scnrm2_thunderx2t99.c
│ │ ├── sgemm_beta.S
│ │ ├── sgemm_direct_alpha_beta_arm64_sme1.c
│ │ ├── sgemm_direct_arm64_sme1.c
│ │ ├── sgemm_direct_performant.c
│ │ ├── sgemm_direct_sme1_2VLx2VL.S
│ │ ├── sgemm_direct_sme1_preprocess.S
│ │ ├── sgemm_kernel_16x4.S
│ │ ├── sgemm_kernel_16x4_thunderx2t99.S
│ │ ├── sgemm_kernel_4x4.S
│ │ ├── sgemm_kernel_8x8.S
│ │ ├── sgemm_kernel_8x8_cortexa53.S
│ │ ├── sgemm_kernel_sve_v1x8.S
│ │ ├── sgemm_kernel_sve_v2x8.S
│ │ ├── sgemm_ncopy_4.S
│ │ ├── sgemm_ncopy_8.S
│ │ ├── sgemm_small_kernel_nn_sve.c
│ │ ├── sgemm_small_kernel_nt_sve.c
│ │ ├── sgemm_small_kernel_tn_sve.c
│ │ ├── sgemm_small_kernel_tt_sve.c
│ │ ├── sgemm_tcopy_16.S
│ │ ├── sgemm_tcopy_8.S
│ │ ├── sgemv_n_neon.c
│ │ ├── sme_abi.h
│ │ ├── ssum_thunderx2t99.c
│ │ ├── ssymm_direct_alpha_beta_arm64_sme1.c
│ │ ├── ssyr2k_direct_alpha_beta_arm64_sme1.c
│ │ ├── ssyrk_direct_alpha_beta_arm64_sme1.c
│ │ ├── strmm_direct_arm64_sme1.c
│ │ ├── strmm_kernel_16x4.S
│ │ ├── strmm_kernel_4x4.S
│ │ ├── strmm_kernel_8x8.S
│ │ ├── strmm_kernel_8x8_cortexa53.S
│ │ ├── strmm_kernel_sve_v1x8.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── swap.c
│ │ ├── swap_kernel_c.c
│ │ ├── swap_kernel_sve.c
│ │ ├── swap_thunderx2t99.S
│ │ ├── symm_lcopy_sve.c
│ │ ├── symm_ucopy_sve.c
│ │ ├── symv_L_asimd_4x4.c
│ │ ├── symv_L_sve_v1x4.c
│ │ ├── symv_U_asimd_4x4.c
│ │ ├── symv_U_sve_v1x4.c
│ │ ├── symv_microk_asimd_4x4.c
│ │ ├── symv_microk_sve_v1x4.c
│ │ ├── trmm_lncopy_sve_v1.c
│ │ ├── trmm_ltcopy_sve_v1.c
│ │ ├── trmm_uncopy_sve_v1.c
│ │ ├── trmm_utcopy_sve_v1.c
│ │ ├── trsm_kernel_LN_sve.c
│ │ ├── trsm_kernel_LT_sve.c
│ │ ├── trsm_kernel_RN_sve.c
│ │ ├── trsm_kernel_RT_sve.c
│ │ ├── trsm_lncopy_sve.c
│ │ ├── trsm_ltcopy_sve.c
│ │ ├── trsm_uncopy_sve.c
│ │ ├── trsm_utcopy_sve.c
│ │ ├── zamax.S
│ │ ├── zasum.S
│ │ ├── zasum_thunderx2t99.c
│ │ ├── zaxpy.S
│ │ ├── zdot.S
│ │ ├── zdot_thunderx2t99.c
│ │ ├── zgemm_kernel_4x4.S
│ │ ├── zgemm_kernel_4x4_cortexa53.c
│ │ ├── zgemm_kernel_4x4_thunderx2t99.S
│ │ ├── zgemm_kernel_sve_v1x4.S
│ │ ├── zgemm_ncopy_sve_v1.c
│ │ ├── zgemm_tcopy_sve_v1.c
│ │ ├── zgemv_n.S
│ │ ├── zgemv_t.S
│ │ ├── zhemm_ltcopy_sve.c
│ │ ├── zhemm_utcopy_sve.c
│ │ ├── znrm2.S
│ │ ├── zrot.S
│ │ ├── zscal.S
│ │ ├── zsum.S
│ │ ├── zsum_thunderx2t99.c
│ │ ├── zsymm_lcopy_sve.c
│ │ ├── zsymm_ucopy_sve.c
│ │ ├── ztrmm_kernel_4x4.S
│ │ ├── ztrmm_kernel_sve_v1x4.S
│ │ ├── ztrmm_lncopy_sve_v1.c
│ │ ├── ztrmm_ltcopy_sve_v1.c
│ │ ├── ztrmm_uncopy_sve_v1.c
│ │ ├── ztrmm_utcopy_sve_v1.c
│ │ ├── ztrsm_lncopy_sve.c
│ │ ├── ztrsm_ltcopy_sve.c
│ │ ├── ztrsm_uncopy_sve.c
│ │ └── ztrsm_utcopy_sve.c
│ ├── csky/
│ │ ├── KERNEL
│ │ └── Makefile
│ ├── e2k/
│ │ ├── KERNEL
│ │ └── Makefile
│ ├── generic/
│ │ ├── cabs.c
│ │ ├── conversion_macros.h
│ │ ├── dot.c
│ │ ├── geadd.c
│ │ ├── gemm_beta.c
│ │ ├── gemm_ncopy_1.c
│ │ ├── gemm_ncopy_16.c
│ │ ├── gemm_ncopy_2.c
│ │ ├── gemm_ncopy_4.c
│ │ ├── gemm_ncopy_6.c
│ │ ├── gemm_ncopy_8.c
│ │ ├── gemm_small_matrix_kernel_nn.c
│ │ ├── gemm_small_matrix_kernel_nt.c
│ │ ├── gemm_small_matrix_kernel_tn.c
│ │ ├── gemm_small_matrix_kernel_tt.c
│ │ ├── gemm_small_matrix_permit.c
│ │ ├── gemm_tcopy_1.c
│ │ ├── gemm_tcopy_16.c
│ │ ├── gemm_tcopy_2.c
│ │ ├── gemm_tcopy_4.c
│ │ ├── gemm_tcopy_6.c
│ │ ├── gemm_tcopy_8.c
│ │ ├── gemmkernel_2x2.c
│ │ ├── gemv_n.c
│ │ ├── gemv_t.c
│ │ ├── ger.c
│ │ ├── imatcopy_cn.c
│ │ ├── imatcopy_ct.c
│ │ ├── imatcopy_rn.c
│ │ ├── imatcopy_rt.c
│ │ ├── laswp_ncopy_1.c
│ │ ├── laswp_ncopy_2.c
│ │ ├── laswp_ncopy_4.c
│ │ ├── laswp_ncopy_6.c
│ │ ├── laswp_ncopy_8.c
│ │ ├── lsame.c
│ │ ├── neg_tcopy_1.c
│ │ ├── neg_tcopy_16.c
│ │ ├── neg_tcopy_2.c
│ │ ├── neg_tcopy_4.c
│ │ ├── neg_tcopy_8.c
│ │ ├── rotm.c
│ │ ├── scal.c
│ │ ├── symm_lcopy_1.c
│ │ ├── symm_lcopy_16.c
│ │ ├── symm_lcopy_2.c
│ │ ├── symm_lcopy_4.c
│ │ ├── symm_lcopy_6.c
│ │ ├── symm_lcopy_8.c
│ │ ├── symm_ucopy_1.c
│ │ ├── symm_ucopy_16.c
│ │ ├── symm_ucopy_2.c
│ │ ├── symm_ucopy_4.c
│ │ ├── symm_ucopy_6.c
│ │ ├── symm_ucopy_8.c
│ │ ├── symv_k.c
│ │ ├── trmm_lncopy_1.c
│ │ ├── trmm_lncopy_16.c
│ │ ├── trmm_lncopy_2.c
│ │ ├── trmm_lncopy_4.c
│ │ ├── trmm_lncopy_6.c
│ │ ├── trmm_lncopy_8.c
│ │ ├── trmm_ltcopy_1.c
│ │ ├── trmm_ltcopy_16.c
│ │ ├── trmm_ltcopy_2.c
│ │ ├── trmm_ltcopy_4.c
│ │ ├── trmm_ltcopy_6.c
│ │ ├── trmm_ltcopy_8.c
│ │ ├── trmm_uncopy_1.c
│ │ ├── trmm_uncopy_16.c
│ │ ├── trmm_uncopy_2.c
│ │ ├── trmm_uncopy_4.c
│ │ ├── trmm_uncopy_6.c
│ │ ├── trmm_uncopy_8.c
│ │ ├── trmm_utcopy_1.c
│ │ ├── trmm_utcopy_16.c
│ │ ├── trmm_utcopy_2.c
│ │ ├── trmm_utcopy_4.c
│ │ ├── trmm_utcopy_6.c
│ │ ├── trmm_utcopy_8.c
│ │ ├── trmmkernel_16x2.c
│ │ ├── trmmkernel_16x4.c
│ │ ├── trmmkernel_16x8.c
│ │ ├── trmmkernel_2x2.c
│ │ ├── trmmkernel_4x4.c
│ │ ├── trmmkernel_4x8.c
│ │ ├── trmmkernel_8x2.c
│ │ ├── trmmkernel_8x4.c
│ │ ├── trmmkernel_8x8.c
│ │ ├── trsm_kernel_LN.c
│ │ ├── trsm_kernel_LT.c
│ │ ├── trsm_kernel_RN.c
│ │ ├── trsm_kernel_RT.c
│ │ ├── trsm_lncopy_1.c
│ │ ├── trsm_lncopy_16.c
│ │ ├── trsm_lncopy_2.c
│ │ ├── trsm_lncopy_4.c
│ │ ├── trsm_lncopy_6.c
│ │ ├── trsm_lncopy_8.c
│ │ ├── trsm_ltcopy_1.c
│ │ ├── trsm_ltcopy_16.c
│ │ ├── trsm_ltcopy_2.c
│ │ ├── trsm_ltcopy_4.c
│ │ ├── trsm_ltcopy_6.c
│ │ ├── trsm_ltcopy_8.c
│ │ ├── trsm_uncopy_1.c
│ │ ├── trsm_uncopy_16.c
│ │ ├── trsm_uncopy_2.c
│ │ ├── trsm_uncopy_4.c
│ │ ├── trsm_uncopy_6.c
│ │ ├── trsm_uncopy_8.c
│ │ ├── trsm_utcopy_1.c
│ │ ├── trsm_utcopy_16.c
│ │ ├── trsm_utcopy_2.c
│ │ ├── trsm_utcopy_4.c
│ │ ├── trsm_utcopy_6.c
│ │ ├── trsm_utcopy_8.c
│ │ ├── zgeadd.c
│ │ ├── zgemm3m_ncopy_1.c
│ │ ├── zgemm3m_ncopy_2.c
│ │ ├── zgemm3m_ncopy_4.c
│ │ ├── zgemm3m_ncopy_8.c
│ │ ├── zgemm3m_tcopy_1.c
│ │ ├── zgemm3m_tcopy_2.c
│ │ ├── zgemm3m_tcopy_4.c
│ │ ├── zgemm3m_tcopy_8.c
│ │ ├── zgemm3mkernel_dump.c
│ │ ├── zgemm_beta.c
│ │ ├── zgemm_ncopy_1.c
│ │ ├── zgemm_ncopy_16.c
│ │ ├── zgemm_ncopy_2.c
│ │ ├── zgemm_ncopy_4.c
│ │ ├── zgemm_ncopy_4_sandy.c
│ │ ├── zgemm_ncopy_8.c
│ │ ├── zgemm_ncopy_8_sandy.c
│ │ ├── zgemm_small_matrix_kernel_nn.c
│ │ ├── zgemm_small_matrix_kernel_nt.c
│ │ ├── zgemm_small_matrix_kernel_tn.c
│ │ ├── zgemm_small_matrix_kernel_tt.c
│ │ ├── zgemm_small_matrix_permit.c
│ │ ├── zgemm_tcopy_1.c
│ │ ├── zgemm_tcopy_2.c
│ │ ├── zgemm_tcopy_4.c
│ │ ├── zgemm_tcopy_4_sandy.c
│ │ ├── zgemm_tcopy_8.c
│ │ ├── zgemm_tcopy_8_sandy.c
│ │ ├── zgemmkernel_2x2.c
│ │ ├── zger.c
│ │ ├── zhemm3m_lcopy_1.c
│ │ ├── zhemm3m_lcopy_2.c
│ │ ├── zhemm3m_lcopy_4.c
│ │ ├── zhemm3m_lcopy_8.c
│ │ ├── zhemm3m_ucopy_1.c
│ │ ├── zhemm3m_ucopy_2.c
│ │ ├── zhemm3m_ucopy_4.c
│ │ ├── zhemm3m_ucopy_8.c
│ │ ├── zhemm_ltcopy_1.c
│ │ ├── zhemm_ltcopy_16.c
│ │ ├── zhemm_ltcopy_2.c
│ │ ├── zhemm_ltcopy_4.c
│ │ ├── zhemm_ltcopy_8.c
│ │ ├── zhemm_utcopy_1.c
│ │ ├── zhemm_utcopy_16.c
│ │ ├── zhemm_utcopy_2.c
│ │ ├── zhemm_utcopy_4.c
│ │ ├── zhemm_utcopy_8.c
│ │ ├── zhemv_k.c
│ │ ├── zimatcopy_cn.c
│ │ ├── zimatcopy_cnc.c
│ │ ├── zimatcopy_ct.c
│ │ ├── zimatcopy_ctc.c
│ │ ├── zimatcopy_rn.c
│ │ ├── zimatcopy_rnc.c
│ │ ├── zimatcopy_rt.c
│ │ ├── zimatcopy_rtc.c
│ │ ├── zlaswp_ncopy_1.c
│ │ ├── zlaswp_ncopy_2.c
│ │ ├── zlaswp_ncopy_4.c
│ │ ├── zlaswp_ncopy_8.c
│ │ ├── zneg_tcopy_1.c
│ │ ├── zneg_tcopy_16.c
│ │ ├── zneg_tcopy_2.c
│ │ ├── zneg_tcopy_4.c
│ │ ├── zneg_tcopy_8.c
│ │ ├── zsymm3m_lcopy_1.c
│ │ ├── zsymm3m_lcopy_2.c
│ │ ├── zsymm3m_lcopy_4.c
│ │ ├── zsymm3m_lcopy_8.c
│ │ ├── zsymm3m_ucopy_1.c
│ │ ├── zsymm3m_ucopy_2.c
│ │ ├── zsymm3m_ucopy_4.c
│ │ ├── zsymm3m_ucopy_8.c
│ │ ├── zsymm_lcopy_1.c
│ │ ├── zsymm_lcopy_16.c
│ │ ├── zsymm_lcopy_2.c
│ │ ├── zsymm_lcopy_4.c
│ │ ├── zsymm_lcopy_8.c
│ │ ├── zsymm_ucopy_1.c
│ │ ├── zsymm_ucopy_16.c
│ │ ├── zsymm_ucopy_2.c
│ │ ├── zsymm_ucopy_4.c
│ │ ├── zsymm_ucopy_8.c
│ │ ├── zsymv_k.c
│ │ ├── ztrmm_lncopy_1.c
│ │ ├── ztrmm_lncopy_16.c
│ │ ├── ztrmm_lncopy_2.c
│ │ ├── ztrmm_lncopy_4.c
│ │ ├── ztrmm_lncopy_8.c
│ │ ├── ztrmm_ltcopy_1.c
│ │ ├── ztrmm_ltcopy_16.c
│ │ ├── ztrmm_ltcopy_2.c
│ │ ├── ztrmm_ltcopy_4.c
│ │ ├── ztrmm_ltcopy_8.c
│ │ ├── ztrmm_uncopy_1.c
│ │ ├── ztrmm_uncopy_16.c
│ │ ├── ztrmm_uncopy_2.c
│ │ ├── ztrmm_uncopy_4.c
│ │ ├── ztrmm_uncopy_8.c
│ │ ├── ztrmm_utcopy_1.c
│ │ ├── ztrmm_utcopy_16.c
│ │ ├── ztrmm_utcopy_2.c
│ │ ├── ztrmm_utcopy_4.c
│ │ ├── ztrmm_utcopy_8.c
│ │ ├── ztrmmkernel_2x2.c
│ │ ├── ztrmmkernel_4x4.c
│ │ ├── ztrsm_lncopy_1.c
│ │ ├── ztrsm_lncopy_16.c
│ │ ├── ztrsm_lncopy_2.c
│ │ ├── ztrsm_lncopy_4.c
│ │ ├── ztrsm_lncopy_8.c
│ │ ├── ztrsm_ltcopy_1.c
│ │ ├── ztrsm_ltcopy_16.c
│ │ ├── ztrsm_ltcopy_2.c
│ │ ├── ztrsm_ltcopy_4.c
│ │ ├── ztrsm_ltcopy_8.c
│ │ ├── ztrsm_uncopy_1.c
│ │ ├── ztrsm_uncopy_16.c
│ │ ├── ztrsm_uncopy_2.c
│ │ ├── ztrsm_uncopy_4.c
│ │ ├── ztrsm_uncopy_8.c
│ │ ├── ztrsm_utcopy_1.c
│ │ ├── ztrsm_utcopy_16.c
│ │ ├── ztrsm_utcopy_2.c
│ │ ├── ztrsm_utcopy_4.c
│ │ └── ztrsm_utcopy_8.c
│ ├── ia64/
│ │ ├── KERNEL
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── asum.S
│ │ ├── cabs.S
│ │ ├── caxpy.S
│ │ ├── copy.S
│ │ ├── daxpy.S
│ │ ├── ddot.S
│ │ ├── gemm_beta.S
│ │ ├── gemm_kernel.S
│ │ ├── gemm_ncopy.S
│ │ ├── gemm_tcopy.S
│ │ ├── gemv_n.S
│ │ ├── gemv_t.S
│ │ ├── iamax.S
│ │ ├── izamax.S
│ │ ├── lsame.S
│ │ ├── nrm2.S
│ │ ├── qaxpy.S
│ │ ├── qcopy.S
│ │ ├── qdot.S
│ │ ├── qgemm_kernel.S
│ │ ├── qgemv_n.S
│ │ ├── qgemv_t.S
│ │ ├── qscal.S
│ │ ├── rot.S
│ │ ├── saxpy.S
│ │ ├── scal.S
│ │ ├── sdot.S
│ │ ├── sgemv_n.S
│ │ ├── staticbuffer.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── symv_U.S
│ │ ├── trsm_kernel_LN.S
│ │ ├── trsm_kernel_LT.S
│ │ ├── trsm_kernel_RT.S
│ │ ├── xcopy.S
│ │ ├── xdot.S
│ │ ├── zaxpy.S
│ │ ├── zcopy.S
│ │ ├── zdot.S
│ │ ├── zgemm3m_kernel.S
│ │ ├── zgemm_beta.S
│ │ ├── zgemm_kernel.S
│ │ ├── zgemm_ncopy.S
│ │ ├── zgemm_tcopy.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_t.S
│ │ ├── zrot.S
│ │ ├── zscal.S
│ │ ├── zswap.S
│ │ ├── ztrsm_kernel_LN.S
│ │ ├── ztrsm_kernel_LT.S
│ │ └── ztrsm_kernel_RT.S
│ ├── loongarch64/
│ │ ├── KERNEL
│ │ ├── KERNEL.LA264
│ │ ├── KERNEL.LA464
│ │ ├── KERNEL.LA64_GENERIC
│ │ ├── KERNEL.generic
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── amax_lasx.S
│ │ ├── amax_lsx.S
│ │ ├── amin.S
│ │ ├── amin_lasx.S
│ │ ├── amin_lsx.S
│ │ ├── asum.S
│ │ ├── asum_lasx.S
│ │ ├── asum_lsx.S
│ │ ├── axpby_lasx.S
│ │ ├── axpby_lsx.S
│ │ ├── axpy_lasx.S
│ │ ├── axpy_lsx.S
│ │ ├── camax_lasx.S
│ │ ├── camax_lsx.S
│ │ ├── camin_lasx.S
│ │ ├── camin_lsx.S
│ │ ├── casum_lasx.S
│ │ ├── casum_lsx.S
│ │ ├── caxpby_lasx.S
│ │ ├── caxpby_lsx.S
│ │ ├── caxpy_lasx.S
│ │ ├── caxpy_lsx.S
│ │ ├── ccopy_lasx.S
│ │ ├── ccopy_lsx.S
│ │ ├── cdot_lasx.S
│ │ ├── cdot_lsx.S
│ │ ├── cgemm_kernel_16x4_lasx.S
│ │ ├── cgemm_kernel_2x2_lasx.S
│ │ ├── cgemm_kernel_2x2_lsx.S
│ │ ├── cgemm_kernel_8x4_lsx.S
│ │ ├── cgemm_ncopy_16_lasx.S
│ │ ├── cgemm_ncopy_2_lasx.S
│ │ ├── cgemm_ncopy_2_lsx.S
│ │ ├── cgemm_ncopy_4_lasx.S
│ │ ├── cgemm_ncopy_4_lsx.S
│ │ ├── cgemm_ncopy_8_lsx.S
│ │ ├── cgemm_tcopy_16_lasx.S
│ │ ├── cgemm_tcopy_2_lasx.S
│ │ ├── cgemm_tcopy_2_lsx.S
│ │ ├── cgemm_tcopy_4_lasx.S
│ │ ├── cgemm_tcopy_4_lsx.S
│ │ ├── cgemm_tcopy_8_lsx.S
│ │ ├── cgemv_n_4_lsx.S
│ │ ├── cgemv_n_8_lasx.S
│ │ ├── cgemv_t_4_lsx.S
│ │ ├── cgemv_t_8_lasx.S
│ │ ├── cnrm2.S
│ │ ├── cnrm2_lasx.S
│ │ ├── cnrm2_lsx.S
│ │ ├── copy.S
│ │ ├── copy_lasx.S
│ │ ├── copy_lsx.S
│ │ ├── crot_lasx.S
│ │ ├── crot_lsx.S
│ │ ├── cscal_lasx.S
│ │ ├── cscal_lsx.S
│ │ ├── csum_lasx.S
│ │ ├── csum_lsx.S
│ │ ├── cswap_lasx.S
│ │ ├── cswap_lsx.S
│ │ ├── dgemm_kernel_16x4.S
│ │ ├── dgemm_kernel_16x6.S
│ │ ├── dgemm_kernel_8x4.S
│ │ ├── dgemm_ncopy_16.S
│ │ ├── dgemm_ncopy_4.S
│ │ ├── dgemm_ncopy_4_lsx.S
│ │ ├── dgemm_ncopy_8_lsx.S
│ │ ├── dgemm_small_kernel_nn_lasx.S
│ │ ├── dgemm_small_kernel_nt_lasx.S
│ │ ├── dgemm_small_kernel_tn_lasx.S
│ │ ├── dgemm_small_kernel_tt_lasx.S
│ │ ├── dgemm_small_matrix_permit.c
│ │ ├── dgemm_tcopy_16.S
│ │ ├── dgemm_tcopy_4.S
│ │ ├── dgemm_tcopy_4_lsx.S
│ │ ├── dgemm_tcopy_6.S
│ │ ├── dgemm_tcopy_8_lsx.S
│ │ ├── dgemv_n_8_lasx.S
│ │ ├── dgemv_n_lsx.S
│ │ ├── dgemv_t_8_lasx.S
│ │ ├── dgemv_t_lsx.S
│ │ ├── dnrm2.S
│ │ ├── dnrm2_lasx.S
│ │ ├── dnrm2_lsx.S
│ │ ├── dot.S
│ │ ├── dot_lasx.S
│ │ ├── dot_lsx.S
│ │ ├── dscal_lasx.S
│ │ ├── dscal_lsx.S
│ │ ├── dsymv_L_lasx.S
│ │ ├── dsymv_L_lsx.S
│ │ ├── dsymv_U_lasx.S
│ │ ├── dsymv_U_lsx.S
│ │ ├── dtrsm_kernel_LN_16x4_lasx.S
│ │ ├── dtrsm_kernel_LT_16x4_lasx.S
│ │ ├── dtrsm_kernel_RN_16x4_lasx.S
│ │ ├── dtrsm_kernel_RT_16x4_lasx.S
│ │ ├── dtrsm_kernel_macro.S
│ │ ├── gemm_kernel.S
│ │ ├── gemm_ncopy_6.prefx.c
│ │ ├── gemv_n.S
│ │ ├── gemv_t.S
│ │ ├── iamax.S
│ │ ├── iamax_lasx.S
│ │ ├── iamax_lsx.S
│ │ ├── iamin.S
│ │ ├── iamin_lasx.S
│ │ ├── iamin_lsx.S
│ │ ├── icamax_lasx.S
│ │ ├── icamax_lsx.S
│ │ ├── icamin_lasx.S
│ │ ├── icamin_lsx.S
│ │ ├── imax_lasx.S
│ │ ├── imax_lsx.S
│ │ ├── imin_lasx.S
│ │ ├── imin_lsx.S
│ │ ├── izamax.S
│ │ ├── izamin.S
│ │ ├── loongarch64_asm.S
│ │ ├── max.S
│ │ ├── max_lasx.S
│ │ ├── max_lsx.S
│ │ ├── min.S
│ │ ├── min_lasx.S
│ │ ├── min_lsx.S
│ │ ├── rot_lasx.S
│ │ ├── rot_lsx.S
│ │ ├── scal.S
│ │ ├── scal_lasx.S
│ │ ├── scal_lsx.S
│ │ ├── sgemm_kernel_16x8_lasx.S
│ │ ├── sgemm_ncopy_16_lasx.S
│ │ ├── sgemm_ncopy_8_lasx.S
│ │ ├── sgemm_tcopy_16_lasx.S
│ │ ├── sgemm_tcopy_8_lasx.S
│ │ ├── sgemv_n_8_lasx.S
│ │ ├── sgemv_n_lsx.S
│ │ ├── sgemv_t_8_lasx.S
│ │ ├── sgemv_t_lsx.S
│ │ ├── snrm2.S
│ │ ├── snrm2_lasx.S
│ │ ├── snrm2_lsx.S
│ │ ├── somatcopy_cn_lasx.c
│ │ ├── somatcopy_ct_lasx.c
│ │ ├── somatcopy_rn_lasx.c
│ │ ├── somatcopy_rt_lasx.c
│ │ ├── ssymv_L_lasx.S
│ │ ├── ssymv_L_lsx.S
│ │ ├── ssymv_U_lasx.S
│ │ ├── ssymv_U_lsx.S
│ │ ├── sum_lasx.S
│ │ ├── sum_lsx.S
│ │ ├── swap.S
│ │ ├── swap_lasx.S
│ │ ├── swap_lsx.S
│ │ ├── trsm_kernel_LN.S
│ │ ├── trsm_kernel_LN_UNROLLN6.c
│ │ ├── trsm_kernel_LT.S
│ │ ├── trsm_kernel_LT_UNROLLN6.c
│ │ ├── trsm_kernel_RN_UNROLLN6.c
│ │ ├── trsm_kernel_RT.S
│ │ ├── trsm_kernel_RT_UNROLLN6.c
│ │ ├── zamax.S
│ │ ├── zamin.S
│ │ ├── zasum.S
│ │ ├── zcopy.S
│ │ ├── zdot.S
│ │ ├── zgemm3m_kernel.S
│ │ ├── zgemm_kernel.S
│ │ ├── zgemm_kernel_2x2.S
│ │ ├── zgemm_kernel_2x2_lasx.S
│ │ ├── zgemm_kernel_4x4_lsx.S
│ │ ├── zgemm_kernel_8x4_lasx.S
│ │ ├── zgemm_ncopy_2_lasx.S
│ │ ├── zgemm_ncopy_4_lasx.S
│ │ ├── zgemm_ncopy_4_lsx.S
│ │ ├── zgemm_ncopy_8_lasx.S
│ │ ├── zgemm_tcopy_2_lasx.S
│ │ ├── zgemm_tcopy_4_lasx.S
│ │ ├── zgemm_tcopy_4_lsx.S
│ │ ├── zgemm_tcopy_8_lasx.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_n_2_lsx.S
│ │ ├── zgemv_n_4_lasx.S
│ │ ├── zgemv_t.S
│ │ ├── zgemv_t_2_lsx.S
│ │ ├── zgemv_t_4_lasx.S
│ │ ├── znrm2.S
│ │ ├── znrm2_lasx.S
│ │ ├── znrm2_lsx.S
│ │ ├── zscal.S
│ │ ├── ztrsm_kernel_LT.S
│ │ └── ztrsm_kernel_RT.S
│ ├── mips/
│ │ ├── KERNEL
│ │ ├── KERNEL.MIPS1004K
│ │ ├── KERNEL.MIPS24K
│ │ ├── KERNEL.P5600
│ │ ├── KERNEL.generic
│ │ ├── Makefile
│ │ ├── amax.c
│ │ ├── amin.c
│ │ ├── asum.c
│ │ ├── axpby.c
│ │ ├── axpy.c
│ │ ├── casum_msa.c
│ │ ├── caxpy_msa.c
│ │ ├── ccopy_msa.c
│ │ ├── cdot_msa.c
│ │ ├── cgemm_kernel_8x4_msa.c
│ │ ├── cgemm_ncopy_4_msa.c
│ │ ├── cgemm_ncopy_8_msa.c
│ │ ├── cgemm_tcopy_4_msa.c
│ │ ├── cgemm_tcopy_8_msa.c
│ │ ├── cgemv_n_msa.c
│ │ ├── cgemv_t_msa.c
│ │ ├── copy.c
│ │ ├── crot_msa.c
│ │ ├── cscal_msa.c
│ │ ├── cswap_msa.c
│ │ ├── dasum_msa.c
│ │ ├── daxpy_msa.c
│ │ ├── dcopy_msa.c
│ │ ├── ddot_msa.c
│ │ ├── dgemm_kernel_8x4_msa.c
│ │ ├── dgemm_ncopy_4_msa.c
│ │ ├── dgemm_ncopy_8_msa.c
│ │ ├── dgemm_tcopy_4_msa.c
│ │ ├── dgemm_tcopy_8_msa.c
│ │ ├── dgemv_n_msa.c
│ │ ├── dgemv_t_msa.c
│ │ ├── dot.c
│ │ ├── drot_msa.c
│ │ ├── dscal_msa.c
│ │ ├── dswap_msa.c
│ │ ├── dtrsm_kernel_LN_8x4_msa.c
│ │ ├── dtrsm_kernel_LT_8x4_msa.c
│ │ ├── dtrsm_kernel_RN_8x4_msa.c
│ │ ├── dtrsm_kernel_RT_8x4_msa.c
│ │ ├── gemv_n.c
│ │ ├── gemv_t.c
│ │ ├── iamax.c
│ │ ├── iamin.c
│ │ ├── imax.c
│ │ ├── imin.c
│ │ ├── izamax.c
│ │ ├── izamin.c
│ │ ├── macros_msa.h
│ │ ├── max.c
│ │ ├── min.c
│ │ ├── nrm2.c
│ │ ├── omatcopy_cn.c
│ │ ├── omatcopy_ct.c
│ │ ├── omatcopy_rn.c
│ │ ├── omatcopy_rt.c
│ │ ├── rot.c
│ │ ├── sasum_msa.c
│ │ ├── saxpy_msa.c
│ │ ├── scal.c
│ │ ├── scopy_msa.c
│ │ ├── sdot_msa.c
│ │ ├── sgemm_kernel_8x8_msa.c
│ │ ├── sgemm_ncopy_8_msa.c
│ │ ├── sgemm_tcopy_8_msa.c
│ │ ├── sgemv_n_msa.c
│ │ ├── sgemv_t_msa.c
│ │ ├── srot_msa.c
│ │ ├── sscal_msa.c
│ │ ├── sswap_msa.c
│ │ ├── strsm_kernel_LN_8x8_msa.c
│ │ ├── strsm_kernel_LT_8x8_msa.c
│ │ ├── strsm_kernel_RN_8x8_msa.c
│ │ ├── strsm_kernel_RT_8x8_msa.c
│ │ ├── sum.c
│ │ ├── swap.c
│ │ ├── symv_L.c
│ │ ├── symv_U.c
│ │ ├── zamax.c
│ │ ├── zamin.c
│ │ ├── zasum.c
│ │ ├── zasum_msa.c
│ │ ├── zaxpby.c
│ │ ├── zaxpy.c
│ │ ├── zaxpy_msa.c
│ │ ├── zcopy.c
│ │ ├── zcopy_msa.c
│ │ ├── zdot.c
│ │ ├── zdot_msa.c
│ │ ├── zgemm_kernel_4x4_msa.c
│ │ ├── zgemm_ncopy_4_msa.c
│ │ ├── zgemm_tcopy_4_msa.c
│ │ ├── zgemv_n.c
│ │ ├── zgemv_n_msa.c
│ │ ├── zgemv_t.c
│ │ ├── zgemv_t_msa.c
│ │ ├── znrm2.c
│ │ ├── zomatcopy_cn.c
│ │ ├── zomatcopy_cnc.c
│ │ ├── zomatcopy_ct.c
│ │ ├── zomatcopy_ctc.c
│ │ ├── zomatcopy_rn.c
│ │ ├── zomatcopy_rnc.c
│ │ ├── zomatcopy_rt.c
│ │ ├── zomatcopy_rtc.c
│ │ ├── zrot.c
│ │ ├── zrot_msa.c
│ │ ├── zscal.c
│ │ ├── zscal_msa.c
│ │ ├── zsum.c
│ │ ├── zswap.c
│ │ └── zswap_msa.c
│ ├── mips64/
│ │ ├── KERNEL
│ │ ├── KERNEL.I6400
│ │ ├── KERNEL.I6500
│ │ ├── KERNEL.LOONGSON3R3
│ │ ├── KERNEL.LOONGSON3R4
│ │ ├── KERNEL.MIPS64_GENERIC
│ │ ├── KERNEL.P6600
│ │ ├── KERNEL.generic
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── amin.S
│ │ ├── asum.S
│ │ ├── axpy.S
│ │ ├── axpy_loongson3a.S
│ │ ├── cgemm_kernel_loongson3a_2x2.S
│ │ ├── cgemm_kernel_loongson3a_4x2_ps.S
│ │ ├── cgemm_kernel_loongson3b_2x2.S
│ │ ├── cnrm2.S
│ │ ├── copy.S
│ │ ├── daxpy_loongson3a_simd.S
│ │ ├── dgemm_kernel_loongson3a_4x4.S
│ │ ├── dgemm_kernel_loongson3b_4x4.S
│ │ ├── dnrm2.S
│ │ ├── dot.S
│ │ ├── gemm_beta.S
│ │ ├── gemm_kernel.S
│ │ ├── gemv_n.S
│ │ ├── gemv_n_loongson3a.c
│ │ ├── gemv_t.S
│ │ ├── gemv_t_loongson3a.c
│ │ ├── iamax.S
│ │ ├── iamin.S
│ │ ├── imax.S
│ │ ├── imin.S
│ │ ├── izamax.S
│ │ ├── izamin.S
│ │ ├── max.S
│ │ ├── min.S
│ │ ├── rot.S
│ │ ├── scal.S
│ │ ├── sgemm_kernel_8x4_ps.S
│ │ ├── sgemm_kernel_loongson3a_4x4.S
│ │ ├── sgemm_kernel_loongson3b_4x4.S
│ │ ├── snrm2.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── symv_L.S
│ │ ├── symv_U.S
│ │ ├── trsm_kernel_LN.S
│ │ ├── trsm_kernel_LN_loongson3a.S
│ │ ├── trsm_kernel_LT.S
│ │ ├── trsm_kernel_LT_loongson3a.S
│ │ ├── trsm_kernel_RN_loongson3a.S
│ │ ├── trsm_kernel_RT.S
│ │ ├── trsm_kernel_RT_loongson3a.S
│ │ ├── zamax.S
│ │ ├── zamin.S
│ │ ├── zasum.S
│ │ ├── zaxpy.S
│ │ ├── zcopy.S
│ │ ├── zdot.S
│ │ ├── zgemm3m_kernel.S
│ │ ├── zgemm_kernel.S
│ │ ├── zgemm_kernel_loongson3a_2x2.S
│ │ ├── zgemm_kernel_loongson3b_2x2.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_n_loongson3a.c
│ │ ├── zgemv_t.S
│ │ ├── zgemv_t_loongson3a.c
│ │ ├── znrm2.S
│ │ ├── zrot.S
│ │ ├── zscal.S
│ │ ├── zsum.S
│ │ ├── zswap.S
│ │ ├── zsymv_L.S
│ │ ├── zsymv_U.S
│ │ ├── ztrsm_kernel_LT.S
│ │ └── ztrsm_kernel_RT.S
│ ├── power/
│ │ ├── KERNEL
│ │ ├── KERNEL.CELL
│ │ ├── KERNEL.POWER10
│ │ ├── KERNEL.POWER3
│ │ ├── KERNEL.POWER4
│ │ ├── KERNEL.POWER5
│ │ ├── KERNEL.POWER6
│ │ ├── KERNEL.POWER8
│ │ ├── KERNEL.POWER9
│ │ ├── KERNEL.PPC440
│ │ ├── KERNEL.PPC440FP2
│ │ ├── KERNEL.PPC970
│ │ ├── KERNEL.PPCG4
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── amax_cell.S
│ │ ├── amax_hummer.S
│ │ ├── amax_ppc440.S
│ │ ├── amin.S
│ │ ├── amin_cell.S
│ │ ├── amin_hummer.S
│ │ ├── amin_ppc440.S
│ │ ├── asum.S
│ │ ├── asum_cell.S
│ │ ├── asum_hummer.S
│ │ ├── asum_ppc440.S
│ │ ├── axpy.S
│ │ ├── axpy_hummer.S
│ │ ├── axpy_ppc440.S
│ │ ├── cabs.S
│ │ ├── casum.c
│ │ ├── casum_microk_power8.c
│ │ ├── caxpy.c
│ │ ├── caxpy_microk_power10.c
│ │ ├── caxpy_power10.c
│ │ ├── caxpy_power8.S
│ │ ├── caxpy_power9.S
│ │ ├── ccopy.c
│ │ ├── ccopy_microk_power8.c
│ │ ├── ccopy_power10.c
│ │ ├── cdot.c
│ │ ├── cdot_microk_power10.c
│ │ ├── cdot_power9.S
│ │ ├── cgemm_kernel_8x4_power8.S
│ │ ├── cgemm_kernel_power10.S
│ │ ├── cgemm_kernel_power10.c
│ │ ├── cgemm_kernel_power9.S
│ │ ├── cgemm_logic_8x4_power8.S
│ │ ├── cgemm_logic_power10.S
│ │ ├── cgemm_logic_power9.S
│ │ ├── cgemm_macros_8x4_power8.S
│ │ ├── cgemm_macros_power10.S
│ │ ├── cgemm_macros_power9.S
│ │ ├── cgemm_tcopy_8_power8.S
│ │ ├── cgemm_tcopy_logic_8_power8.S
│ │ ├── cgemm_tcopy_macros_8_power8.S
│ │ ├── cgemv_n.c
│ │ ├── cgemv_t.c
│ │ ├── cnrm2.S
│ │ ├── cnrm2_hummer.S
│ │ ├── cnrm2_ppc440.S
│ │ ├── copy.S
│ │ ├── copy_hummer.S
│ │ ├── copy_microk_power10.c
│ │ ├── crot.c
│ │ ├── cscal_microk_power10.c
│ │ ├── cswap.c
│ │ ├── cswap_microk_power10.c
│ │ ├── cswap_microk_power8.c
│ │ ├── ctrmm_kernel_8x4_power8.S
│ │ ├── ctrmm_logic_8x4_power8.S
│ │ ├── ctrmm_macros_8x4_power8.S
│ │ ├── dasum.c
│ │ ├── dasum_microk_power10.c
│ │ ├── dasum_microk_power8.c
│ │ ├── daxpy.c
│ │ ├── daxpy_microk_power10.c
│ │ ├── daxpy_microk_power8.c
│ │ ├── daxpy_power10.c
│ │ ├── dcopy.c
│ │ ├── dcopy_microk_power8.c
│ │ ├── dcopy_power10.c
│ │ ├── ddot.c
│ │ ├── ddot_microk_power10.c
│ │ ├── ddot_microk_power8.c
│ │ ├── ddot_power10.c
│ │ ├── def_vsx.h
│ │ ├── dgemm_kernel_16x4_power8.S
│ │ ├── dgemm_kernel_power10.c
│ │ ├── dgemm_kernel_power9.S
│ │ ├── dgemm_logic_16x4_power8.S
│ │ ├── dgemm_logic_power9.S
│ │ ├── dgemm_macros_16x4_power8.S
│ │ ├── dgemm_macros_power9.S
│ │ ├── dgemm_ncopy_4_power8.S
│ │ ├── dgemm_ncopy_8_power10.c
│ │ ├── dgemm_ncopy_logic_4_power8.S
│ │ ├── dgemm_ncopy_macros_4_power8.S
│ │ ├── dgemm_small_kernel_nn_power10.c
│ │ ├── dgemm_small_kernel_nt_power10.c
│ │ ├── dgemm_small_kernel_tn_power10.c
│ │ ├── dgemm_small_kernel_tt_power10.c
│ │ ├── dgemm_tcopy_16_power8.S
│ │ ├── dgemm_tcopy_logic_16_power8.S
│ │ ├── dgemm_tcopy_macros_16_power10.S
│ │ ├── dgemm_tcopy_macros_16_power8.S
│ │ ├── dgemv_n.c
│ │ ├── dgemv_n_microk_power10.c
│ │ ├── dgemv_n_microk_power8.c
│ │ ├── dgemv_n_power10.c
│ │ ├── dgemv_t.c
│ │ ├── dgemv_t_power10.c
│ │ ├── dnrm2_hummer.S
│ │ ├── dnrm2_ppc440.S
│ │ ├── dot.S
│ │ ├── dot_cell.S
│ │ ├── dot_hummer.S
│ │ ├── dot_ppc440.S
│ │ ├── drot.c
│ │ ├── drot_microk_power10.c
│ │ ├── drot_microk_power8.c
│ │ ├── dscal.c
│ │ ├── dscal_microk_power10.c
│ │ ├── dscal_microk_power8.c
│ │ ├── dswap.c
│ │ ├── dswap_microk_power8.c
│ │ ├── dtrmm_kernel_16x4_power8.S
│ │ ├── dtrmm_logic_16x4_power8.S
│ │ ├── dtrmm_macros_16x4_power8.S
│ │ ├── dtrsm_kernel_LT_16x4_power8.S
│ │ ├── dtrsm_logic_LT_16x4_power8.S
│ │ ├── dtrsm_macros_LT_16x4_power8.S
│ │ ├── exfunc.S
│ │ ├── gemm_beta.S
│ │ ├── gemm_common.c
│ │ ├── gemm_kernel.S
│ │ ├── gemm_kernel_altivec.S
│ │ ├── gemm_kernel_altivec_cell.S
│ │ ├── gemm_kernel_altivec_g4.S
│ │ ├── gemm_kernel_cell.S
│ │ ├── gemm_kernel_g4.S
│ │ ├── gemm_kernel_hummer.S
│ │ ├── gemm_kernel_power3.S
│ │ ├── gemm_kernel_power6.S
│ │ ├── gemm_kernel_ppc440.S
│ │ ├── gemm_ncopy_4.S
│ │ ├── gemm_ncopy_hummer_4.S
│ │ ├── gemm_ncopy_hummer_8.S
│ │ ├── gemm_small_kernel_permit_power10.c
│ │ ├── gemm_tcopy_4.S
│ │ ├── gemm_tcopy_hummer_4.S
│ │ ├── gemm_tcopy_hummer_8.S
│ │ ├── gemv_hummer_n.S
│ │ ├── gemv_n.S
│ │ ├── gemv_n_ppc440.S
│ │ ├── gemv_t.S
│ │ ├── gemv_t_ppc440.S
│ │ ├── ger.S
│ │ ├── iamax.S
│ │ ├── iamax_hummer.S
│ │ ├── iamax_ppc440.S
│ │ ├── iamin.S
│ │ ├── iamin_hummer.S
│ │ ├── iamin_ppc440.S
│ │ ├── icamax.c
│ │ ├── icamax_power8.S
│ │ ├── icamax_power9.S
│ │ ├── icamin.c
│ │ ├── icamin_power8.S
│ │ ├── icamin_power9.S
│ │ ├── idamax.c
│ │ ├── idamin.c
│ │ ├── imax.S
│ │ ├── imax_hummer.S
│ │ ├── imax_ppc440.S
│ │ ├── imin.S
│ │ ├── imin_hummer.S
│ │ ├── imin_ppc440.S
│ │ ├── isamax.c
│ │ ├── isamax_power8.S
│ │ ├── isamax_power9.S
│ │ ├── isamin.c
│ │ ├── isamin_power8.S
│ │ ├── isamin_power9.S
│ │ ├── izamax.S
│ │ ├── izamax.c
│ │ ├── izamax_hummer.S
│ │ ├── izamax_ppc440.S
│ │ ├── izamin.S
│ │ ├── izamin.c
│ │ ├── izamin_hummer.S
│ │ ├── izamin_ppc440.S
│ │ ├── lock.c
│ │ ├── lsame.S
│ │ ├── max.S
│ │ ├── max_hummer.S
│ │ ├── max_ppc440.S
│ │ ├── min.S
│ │ ├── min_hummer.S
│ │ ├── min_ppc440.S
│ │ ├── nrm2.S
│ │ ├── rot.S
│ │ ├── rot_ppc440.S
│ │ ├── sasum.c
│ │ ├── sasum_microk_power10.c
│ │ ├── sasum_microk_power8.c
│ │ ├── saxpy.c
│ │ ├── saxpy_microk_power10.c
│ │ ├── saxpy_power10.c
│ │ ├── sbgemm_kernel_power10.c
│ │ ├── sbgemm_ncopy_16_power10.c
│ │ ├── sbgemm_ncopy_8_power10.c
│ │ ├── sbgemm_tcopy_16_power10.c
│ │ ├── sbgemm_tcopy_8_power10.c
│ │ ├── sbgemv_common.c
│ │ ├── sbgemv_common_power10.c
│ │ ├── sbgemv_n.c
│ │ ├── sbgemv_n_power10.c
│ │ ├── sbgemv_n_vsx.c
│ │ ├── sbgemv_t.c
│ │ ├── sbgemv_t_power10.c
│ │ ├── sbgemv_t_vsx.c
│ │ ├── scal.S
│ │ ├── scal_hummer.S
│ │ ├── scal_ppc440.S
│ │ ├── scopy.c
│ │ ├── scopy_microk_power8.c
│ │ ├── scopy_power10.c
│ │ ├── sdot.c
│ │ ├── sdot_microk_power10.c
│ │ ├── sdot_microk_power8.c
│ │ ├── sdot_power10.c
│ │ ├── sgemm_kernel_16x8_power8.S
│ │ ├── sgemm_kernel_power10.c
│ │ ├── sgemm_kernel_power9.S
│ │ ├── sgemm_logic_16x8_power8.S
│ │ ├── sgemm_logic_power9.S
│ │ ├── sgemm_macros_16x8_power8.S
│ │ ├── sgemm_macros_power9.S
│ │ ├── sgemm_ncopy_16_power.c
│ │ ├── sgemm_small_kernel_nn_power10.c
│ │ ├── sgemm_small_kernel_nt_power10.c
│ │ ├── sgemm_small_kernel_tn_power10.c
│ │ ├── sgemm_small_kernel_tt_power10.c
│ │ ├── sgemm_tcopy_16_power8.S
│ │ ├── sgemm_tcopy_8_power8.S
│ │ ├── sgemm_tcopy_logic_16_power8.S
│ │ ├── sgemm_tcopy_logic_8_power8.S
│ │ ├── sgemm_tcopy_macros_16_power10.S
│ │ ├── sgemm_tcopy_macros_16_power8.S
│ │ ├── sgemm_tcopy_macros_8_power8.S
│ │ ├── sgemv_n.c
│ │ ├── sgemv_n_8.c
│ │ ├── sgemv_t.c
│ │ ├── sgemv_t_8.c
│ │ ├── snrm2.S
│ │ ├── snrm2_hummer.S
│ │ ├── snrm2_ppc440.S
│ │ ├── srot.c
│ │ ├── srot_microk_power10.c
│ │ ├── srot_microk_power8.c
│ │ ├── sscal.c
│ │ ├── sscal_microk_power10.c
│ │ ├── sscal_microk_power8.c
│ │ ├── sswap.c
│ │ ├── sswap_microk_power8.c
│ │ ├── staticbuffer.S
│ │ ├── strmm_kernel_16x8_power8.S
│ │ ├── strmm_logic_16x8_power8.S
│ │ ├── strmm_macros_16x8_power8.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── swap_hummer.S
│ │ ├── swap_microk_power10.c
│ │ ├── symv_L.S
│ │ ├── symv_U.S
│ │ ├── trsm_kernel_LN.S
│ │ ├── trsm_kernel_LN_power10.c
│ │ ├── trsm_kernel_LT.S
│ │ ├── trsm_kernel_LT_power10.c
│ │ ├── trsm_kernel_RN_power10.c
│ │ ├── trsm_kernel_RT.S
│ │ ├── trsm_kernel_RT_power10.c
│ │ ├── trsm_kernel_cell_LN.S
│ │ ├── trsm_kernel_cell_LT.S
│ │ ├── trsm_kernel_cell_RT.S
│ │ ├── trsm_kernel_hummer_LN.S
│ │ ├── trsm_kernel_hummer_LT.S
│ │ ├── trsm_kernel_hummer_RT.S
│ │ ├── trsm_kernel_power6_LN.S
│ │ ├── trsm_kernel_power6_LT.S
│ │ ├── trsm_kernel_power6_RT.S
│ │ ├── trsm_kernel_ppc440_LN.S
│ │ ├── trsm_kernel_ppc440_LT.S
│ │ ├── trsm_kernel_ppc440_RT.S
│ │ ├── zamax.S
│ │ ├── zamax_cell.S
│ │ ├── zamax_hummer.S
│ │ ├── zamax_ppc440.S
│ │ ├── zamin.S
│ │ ├── zamin_cell.S
│ │ ├── zamin_hummer.S
│ │ ├── zamin_ppc440.S
│ │ ├── zasum.S
│ │ ├── zasum.c
│ │ ├── zasum_cell.S
│ │ ├── zasum_hummer.S
│ │ ├── zasum_microk_power8.c
│ │ ├── zasum_ppc440.S
│ │ ├── zaxpy.S
│ │ ├── zaxpy.c
│ │ ├── zaxpy_hummer.S
│ │ ├── zaxpy_microk_power10.c
│ │ ├── zaxpy_microk_power8.c
│ │ ├── zaxpy_power10.c
│ │ ├── zaxpy_ppc440.S
│ │ ├── zcopy.S
│ │ ├── zcopy.c
│ │ ├── zcopy_hummer.S
│ │ ├── zcopy_microk_power8.c
│ │ ├── zcopy_power10.c
│ │ ├── zdot.S
│ │ ├── zdot.c
│ │ ├── zdot_cell.S
│ │ ├── zdot_hummer.S
│ │ ├── zdot_microk_power8.c
│ │ ├── zdot_ppc440.S
│ │ ├── zgemm_beta.S
│ │ ├── zgemm_kernel.S
│ │ ├── zgemm_kernel_8x2_power8.S
│ │ ├── zgemm_kernel_altivec.S
│ │ ├── zgemm_kernel_altivec_cell.S
│ │ ├── zgemm_kernel_altivec_g4.S
│ │ ├── zgemm_kernel_cell.S
│ │ ├── zgemm_kernel_g4.S
│ │ ├── zgemm_kernel_hummer.S
│ │ ├── zgemm_kernel_power10.S
│ │ ├── zgemm_kernel_power10.c
│ │ ├── zgemm_kernel_power3.S
│ │ ├── zgemm_kernel_power6.S
│ │ ├── zgemm_kernel_power9.S
│ │ ├── zgemm_kernel_ppc440.S
│ │ ├── zgemm_logic_8x2_power8.S
│ │ ├── zgemm_logic_power10.S
│ │ ├── zgemm_logic_power9.S
│ │ ├── zgemm_macros_8x2_power8.S
│ │ ├── zgemm_macros_power10.S
│ │ ├── zgemm_macros_power9.S
│ │ ├── zgemm_ncopy_hummer_2.S
│ │ ├── zgemm_ncopy_hummer_4.S
│ │ ├── zgemm_tcopy_8_power8.S
│ │ ├── zgemm_tcopy_hummer_2.S
│ │ ├── zgemm_tcopy_hummer_4.S
│ │ ├── zgemm_tcopy_logic_8_power8.S
│ │ ├── zgemm_tcopy_macros_8_power8.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_n_4.c
│ │ ├── zgemv_n_power10.c
│ │ ├── zgemv_n_ppc440.S
│ │ ├── zgemv_t.S
│ │ ├── zgemv_t_4.c
│ │ ├── zgemv_t_ppc440.S
│ │ ├── zger.S
│ │ ├── znrm2.S
│ │ ├── znrm2_hummer.S
│ │ ├── znrm2_ppc440.S
│ │ ├── zrot.S
│ │ ├── zrot.c
│ │ ├── zrot_ppc440.S
│ │ ├── zscal.S
│ │ ├── zscal.c
│ │ ├── zscal_hummer.S
│ │ ├── zscal_microk_power10.c
│ │ ├── zscal_microk_power8.c
│ │ ├── zscal_ppc440.S
│ │ ├── zsum.S
│ │ ├── zswap.S
│ │ ├── zswap.c
│ │ ├── zswap_hummer.S
│ │ ├── zswap_microk_power8.c
│ │ ├── zsymv_L.S
│ │ ├── zsymv_U.S
│ │ ├── ztrmm_kernel_8x2_power8.S
│ │ ├── ztrmm_logic_8x2_power8.S
│ │ ├── ztrmm_macros_8x2_power8.S
│ │ ├── ztrsm_kernel_LN.S
│ │ ├── ztrsm_kernel_LT.S
│ │ ├── ztrsm_kernel_RT.S
│ │ ├── ztrsm_kernel_cell_LN.S
│ │ ├── ztrsm_kernel_cell_LT.S
│ │ ├── ztrsm_kernel_cell_RT.S
│ │ ├── ztrsm_kernel_hummer_LN.S
│ │ ├── ztrsm_kernel_hummer_LT.S
│ │ ├── ztrsm_kernel_hummer_RT.S
│ │ ├── ztrsm_kernel_power6_LN.S
│ │ ├── ztrsm_kernel_power6_LT.S
│ │ ├── ztrsm_kernel_power6_RT.S
│ │ ├── ztrsm_kernel_ppc440_LN.S
│ │ ├── ztrsm_kernel_ppc440_LT.S
│ │ └── ztrsm_kernel_ppc440_RT.S
│ ├── riscv64/
│ │ ├── KERNEL
│ │ ├── KERNEL.C910V
│ │ ├── KERNEL.RISCV64_GENERIC
│ │ ├── KERNEL.RISCV64_ZVL128B
│ │ ├── KERNEL.RISCV64_ZVL256B
│ │ ├── KERNEL.x280
│ │ ├── Makefile
│ │ ├── amax.c
│ │ ├── amax_rvv.c
│ │ ├── amax_vector.c
│ │ ├── amin.c
│ │ ├── amin_rvv.c
│ │ ├── amin_vector.c
│ │ ├── asum.c
│ │ ├── asum_rvv.c
│ │ ├── asum_vector.c
│ │ ├── axpby.c
│ │ ├── axpby_rvv.c
│ │ ├── axpby_vector.c
│ │ ├── axpby_vector_v2.c
│ │ ├── axpy.c
│ │ ├── axpy_rvv.c
│ │ ├── axpy_vector.c
│ │ ├── cgemm_kernel_8x4_zvl128b.c
│ │ ├── cgemm_kernel_8x8_zvl256b.c
│ │ ├── copy.c
│ │ ├── copy_rvv.c
│ │ ├── copy_vector.c
│ │ ├── ctrmm_kernel_8x4_zvl128b.c
│ │ ├── ctrmm_kernel_8x8_zvl256b.c
│ │ ├── dgemm_kernel_8x4_c910v.c
│ │ ├── dgemm_kernel_8x4_zvl128b.c
│ │ ├── dgemm_kernel_8x8_zvl256b.c
│ │ ├── dot.c
│ │ ├── dot_rvv.c
│ │ ├── dot_vector.c
│ │ ├── dsdot_vector.c
│ │ ├── dtrmm_kernel_8x4_zvl128b.c
│ │ ├── dtrmm_kernel_8x8_zvl256b.c
│ │ ├── gemm_beta_rvv.c
│ │ ├── gemm_ncopy_16_rvv.c
│ │ ├── gemm_ncopy_16fp_rvv.c
│ │ ├── gemm_ncopy_4_rvv.c
│ │ ├── gemm_ncopy_8_rvv.c
│ │ ├── gemm_ncopy_8fp_rvv.c
│ │ ├── gemm_ncopy_rvv_v1.c
│ │ ├── gemm_tcopy_16_rvv.c
│ │ ├── gemm_tcopy_16fp_rvv.c
│ │ ├── gemm_tcopy_4_rvv.c
│ │ ├── gemm_tcopy_8_rvv.c
│ │ ├── gemm_tcopy_8fp_rvv.c
│ │ ├── gemm_tcopy_rvv_v1.c
│ │ ├── gemmkernel_rvv_v1x8.c
│ │ ├── gemv_n.c
│ │ ├── gemv_n_rvv.c
│ │ ├── gemv_n_vector.c
│ │ ├── gemv_t.c
│ │ ├── gemv_t_rvv.c
│ │ ├── gemv_t_vector.c
│ │ ├── generate_kernel.py
│ │ ├── iamax.c
│ │ ├── iamax_rvv.c
│ │ ├── iamax_vector.c
│ │ ├── iamin.c
│ │ ├── iamin_rvv.c
│ │ ├── iamin_vector.c
│ │ ├── imax.c
│ │ ├── imax_rvv.c
│ │ ├── imax_vector.c
│ │ ├── imin.c
│ │ ├── imin_rvv.c
│ │ ├── imin_vector.c
│ │ ├── izamax.c
│ │ ├── izamax_rvv.c
│ │ ├── izamax_vector.c
│ │ ├── izamin.c
│ │ ├── izamin_rvv.c
│ │ ├── izamin_vector.c
│ │ ├── max.c
│ │ ├── max_rvv.c
│ │ ├── max_vector.c
│ │ ├── min.c
│ │ ├── min_rvv.c
│ │ ├── min_vector.c
│ │ ├── nrm2.c
│ │ ├── nrm2_rvv.c
│ │ ├── nrm2_vector.c
│ │ ├── nrm2_vector_dot.c
│ │ ├── omatcopy_cn.c
│ │ ├── omatcopy_cn_rvv.c
│ │ ├── omatcopy_cn_vector.c
│ │ ├── omatcopy_ct.c
│ │ ├── omatcopy_ct_rvv.c
│ │ ├── omatcopy_rn.c
│ │ ├── omatcopy_rt.c
│ │ ├── rot.c
│ │ ├── rot_rvv.c
│ │ ├── rot_vector.c
│ │ ├── rotm_rvv.c
│ │ ├── sbgemm_kernel_16x8_zvl256b.c
│ │ ├── sbgemm_kernel_8x8_zvl128b.c
│ │ ├── sbgemv_n_vector.c
│ │ ├── sbgemv_t_vector.c
│ │ ├── scal.c
│ │ ├── scal_rvv.c
│ │ ├── scal_vector.c
│ │ ├── sgemm_kernel_16x4_c910v.c
│ │ ├── sgemm_kernel_16x8_zvl256b.c
│ │ ├── sgemm_kernel_8x8_zvl128b.c
│ │ ├── shgemm_kernel_16x8_zvl256b.c
│ │ ├── shgemm_kernel_8x8_zvl128b.c
│ │ ├── strmm_kernel_16x8_zvl256b.c
│ │ ├── strmm_kernel_8x8_zvl128b.c
│ │ ├── sum_rvv.c
│ │ ├── sum_vector.c
│ │ ├── swap.c
│ │ ├── swap_rvv.c
│ │ ├── swap_vector.c
│ │ ├── symm_lcopy_rvv_v1.c
│ │ ├── symm_ucopy_rvv_v1.c
│ │ ├── symv_L.c
│ │ ├── symv_L_rvv.c
│ │ ├── symv_L_vector.c
│ │ ├── symv_U.c
│ │ ├── symv_U_rvv.c
│ │ ├── symv_U_vector.c
│ │ ├── trmm_lncopy_rvv_v1.c
│ │ ├── trmm_ltcopy_rvv_v1.c
│ │ ├── trmm_uncopy_rvv_v1.c
│ │ ├── trmm_utcopy_rvv_v1.c
│ │ ├── trmmkernel_rvv_v1x8.c
│ │ ├── trsm_kernel_LN_rvv_v1.c
│ │ ├── trsm_kernel_LT_rvv_v1.c
│ │ ├── trsm_kernel_RN_rvv_v1.c
│ │ ├── trsm_kernel_RT_rvv_v1.c
│ │ ├── trsm_lncopy_rvv_v1.c
│ │ ├── trsm_ltcopy_rvv_v1.c
│ │ ├── trsm_uncopy_rvv_v1.c
│ │ ├── trsm_utcopy_rvv_v1.c
│ │ ├── zamax.c
│ │ ├── zamax_rvv.c
│ │ ├── zamax_vector.c
│ │ ├── zamin.c
│ │ ├── zamin_rvv.c
│ │ ├── zamin_vector.c
│ │ ├── zasum.c
│ │ ├── zasum_rvv.c
│ │ ├── zasum_vector.c
│ │ ├── zaxpby.c
│ │ ├── zaxpby_rvv.c
│ │ ├── zaxpby_vector.c
│ │ ├── zaxpy.c
│ │ ├── zaxpy_rvv.c
│ │ ├── zaxpy_vector.c
│ │ ├── zcopy.c
│ │ ├── zcopy_rvv.c
│ │ ├── zcopy_vector.c
│ │ ├── zdot.c
│ │ ├── zdot_rvv.c
│ │ ├── zdot_vector.c
│ │ ├── zgemm_beta_rvv.c
│ │ ├── zgemm_kernel_4x4_zvl128b.c
│ │ ├── zgemm_kernel_8x4_zvl256b.c
│ │ ├── zgemm_kernel_generic.c
│ │ ├── zgemm_ncopy_4_rvv.c
│ │ ├── zgemm_ncopy_rvv_v1.c
│ │ ├── zgemm_tcopy_4_rvv.c
│ │ ├── zgemm_tcopy_rvv_v1.c
│ │ ├── zgemmkernel_rvv_v1x4.c
│ │ ├── zgemv_n.c
│ │ ├── zgemv_n_rvv.c
│ │ ├── zgemv_n_vector.c
│ │ ├── zgemv_t.c
│ │ ├── zgemv_t_rvv.c
│ │ ├── zgemv_t_vector.c
│ │ ├── zhemm_ltcopy_rvv_v1.c
│ │ ├── zhemm_utcopy_rvv_v1.c
│ │ ├── zhemv_LM_rvv.c
│ │ ├── zhemv_LM_vector.c
│ │ ├── zhemv_UV_rvv.c
│ │ ├── zhemv_UV_vector.c
│ │ ├── znrm2.c
│ │ ├── znrm2_rvv.c
│ │ ├── znrm2_vector.c
│ │ ├── zomatcopy_cn.c
│ │ ├── zomatcopy_cn_rvv.c
│ │ ├── zomatcopy_cn_vector.c
│ │ ├── zomatcopy_cnc.c
│ │ ├── zomatcopy_ct.c
│ │ ├── zomatcopy_ctc.c
│ │ ├── zomatcopy_rn.c
│ │ ├── zomatcopy_rnc.c
│ │ ├── zomatcopy_rt.c
│ │ ├── zomatcopy_rtc.c
│ │ ├── zrot.c
│ │ ├── zrot_rvv.c
│ │ ├── zrot_vector.c
│ │ ├── zscal.c
│ │ ├── zscal_rvv.c
│ │ ├── zscal_vector.c
│ │ ├── zsum_rvv.c
│ │ ├── zsum_vector.c
│ │ ├── zswap.c
│ │ ├── zswap_rvv.c
│ │ ├── zswap_vector.c
│ │ ├── zsymm_lcopy_rvv_v1.c
│ │ ├── zsymm_ucopy_rvv_v1.c
│ │ ├── zsymv_L_rvv.c
│ │ ├── zsymv_U_rvv.c
│ │ ├── ztrmm_kernel_4x4_zvl128b.c
│ │ ├── ztrmm_kernel_8x4_zvl256b.c
│ │ ├── ztrmm_lncopy_rvv_v1.c
│ │ ├── ztrmm_ltcopy_rvv_v1.c
│ │ ├── ztrmm_uncopy_rvv_v1.c
│ │ ├── ztrmm_utcopy_rvv_v1.c
│ │ ├── ztrmmkernel_2x2_rvv.c
│ │ ├── ztrmmkernel_rvv_v1x4.c
│ │ ├── ztrsm_lncopy_rvv_v1.c
│ │ ├── ztrsm_ltcopy_rvv_v1.c
│ │ ├── ztrsm_uncopy_rvv_v1.c
│ │ └── ztrsm_utcopy_rvv_v1.c
│ ├── setparam-ref.c
│ ├── simd/
│ │ ├── intrin.h
│ │ ├── intrin_avx.h
│ │ ├── intrin_avx512.h
│ │ ├── intrin_neon.h
│ │ ├── intrin_sse.h
│ │ └── intrin_wasm.h
│ ├── sparc/
│ │ ├── KERNEL
│ │ ├── KERNEL.sparc
│ │ ├── KERNEL.sparcv7
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── asum.S
│ │ ├── axpy.S
│ │ ├── cabs.S
│ │ ├── cnrm2.S
│ │ ├── copy.S
│ │ ├── dnrm2.S
│ │ ├── dot.S
│ │ ├── gemm_kernel.S
│ │ ├── gemm_kernel_2x8.S
│ │ ├── gemm_ncopy.S
│ │ ├── gemm_ncopy_2.S
│ │ ├── gemm_ncopy_8.S
│ │ ├── gemm_tcopy.S
│ │ ├── gemm_tcopy_2.S
│ │ ├── gemv_n.S
│ │ ├── gemv_t.S
│ │ ├── ger.S
│ │ ├── iamax.S
│ │ ├── imax.S
│ │ ├── izamax.S
│ │ ├── lsame.S
│ │ ├── max.S
│ │ ├── rot.S
│ │ ├── scal.S
│ │ ├── snrm2.S
│ │ ├── staticbuffer.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── trsm_kernel_LN.S
│ │ ├── trsm_kernel_LN_2x8.S
│ │ ├── trsm_kernel_LT.S
│ │ ├── trsm_kernel_LT_2x8.S
│ │ ├── trsm_kernel_RT.S
│ │ ├── trsm_kernel_RT_2x8.S
│ │ ├── zamax.S
│ │ ├── zasum.S
│ │ ├── zaxpy.S
│ │ ├── zcopy.S
│ │ ├── zdot.S
│ │ ├── zgemm_kernel.S
│ │ ├── zgemm_kernel_1x4.S
│ │ ├── zgemm_ncopy.S
│ │ ├── zgemm_tcopy.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_t.S
│ │ ├── znrm2.S
│ │ ├── zrot.S
│ │ ├── zscal.S
│ │ ├── zsum.S
│ │ ├── zswap.S
│ │ ├── ztrsm_kernel_LN.S
│ │ ├── ztrsm_kernel_LT.S
│ │ ├── ztrsm_kernel_LT_1x4.S
│ │ ├── ztrsm_kernel_RT.S
│ │ └── ztrsm_kernel_RT_1x4.S
│ ├── wasm/
│ │ ├── KERNEL
│ │ ├── KERNEL.WASM128_GENERIC
│ │ └── gemmkernel_wasm128.c
│ ├── x86/
│ │ ├── KERNEL
│ │ ├── KERNEL.ATHLON
│ │ ├── KERNEL.ATOM
│ │ ├── KERNEL.BANIAS
│ │ ├── KERNEL.BARCELONA
│ │ ├── KERNEL.BOBCAT
│ │ ├── KERNEL.BULLDOZER
│ │ ├── KERNEL.COPPERMINE
│ │ ├── KERNEL.CORE2
│ │ ├── KERNEL.DUNNINGTON
│ │ ├── KERNEL.HASWELL
│ │ ├── KERNEL.KATMAI
│ │ ├── KERNEL.NANO
│ │ ├── KERNEL.NEHALEM
│ │ ├── KERNEL.NORTHWOOD
│ │ ├── KERNEL.OPTERON
│ │ ├── KERNEL.OPTERON_SSE3
│ │ ├── KERNEL.P5
│ │ ├── KERNEL.P6
│ │ ├── KERNEL.PENRYN
│ │ ├── KERNEL.PILEDRIVER
│ │ ├── KERNEL.PRESCOTT
│ │ ├── KERNEL.SANDYBRIDGE
│ │ ├── KERNEL.VIAC3
│ │ ├── KERNEL.YONAH
│ │ ├── KERNEL.ZEN
│ │ ├── KERNEL.generic
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── amax_sse.S
│ │ ├── amax_sse2.S
│ │ ├── asum.S
│ │ ├── asum_sse.S
│ │ ├── asum_sse2.S
│ │ ├── axpy.S
│ │ ├── axpy_sse.S
│ │ ├── axpy_sse2.S
│ │ ├── axpy_sse2_opteron.S
│ │ ├── cabs.S
│ │ ├── copy.S
│ │ ├── copy_sse.S
│ │ ├── copy_sse2.S
│ │ ├── cpuid.S
│ │ ├── cpuid_win.c
│ │ ├── dot.S
│ │ ├── dot_amd.S
│ │ ├── dot_sse.S
│ │ ├── dot_sse2.S
│ │ ├── dot_sse2_opteron.S
│ │ ├── dot_sse_opteron.S
│ │ ├── gemm_beta.S
│ │ ├── gemm_kernel_1x4.S
│ │ ├── gemm_kernel_2x2.S
│ │ ├── gemm_kernel_2x2_atom.S
│ │ ├── gemm_kernel_2x4_3dnow.S
│ │ ├── gemm_kernel_2x4_barcelona.S
│ │ ├── gemm_kernel_2x4_core2.S
│ │ ├── gemm_kernel_2x4_penryn.S
│ │ ├── gemm_kernel_2x4_sse2.S
│ │ ├── gemm_kernel_2x4_sse3.S
│ │ ├── gemm_kernel_4x2_core2.S
│ │ ├── gemm_kernel_4x2_sse2.S
│ │ ├── gemm_kernel_4x4_barcelona.S
│ │ ├── gemm_kernel_4x4_penryn.S
│ │ ├── gemm_kernel_4x4_sse.S
│ │ ├── gemm_kernel_4x4_sse3.S
│ │ ├── gemm_kernel_8x1_sse2.S
│ │ ├── gemm_kernel_8x2_core2.S
│ │ ├── gemm_kernel_8x2_sse.S
│ │ ├── gemm_ncopy_2.S
│ │ ├── gemm_ncopy_2_sse.S
│ │ ├── gemm_ncopy_4_sse.S
│ │ ├── gemm_tcopy_2.S
│ │ ├── gemm_tcopy_2_sse.S
│ │ ├── gemm_tcopy_4_sse.S
│ │ ├── gemv_n.S
│ │ ├── gemv_n_atom.S
│ │ ├── gemv_n_sse.S
│ │ ├── gemv_n_sse2.S
│ │ ├── gemv_t.S
│ │ ├── gemv_t_atom.S
│ │ ├── gemv_t_sse.S
│ │ ├── gemv_t_sse2.S
│ │ ├── iamax.S
│ │ ├── iamax_sse.S
│ │ ├── iamax_sse2.S
│ │ ├── izamax.S
│ │ ├── izamax_sse.S
│ │ ├── izamax_sse2.S
│ │ ├── lsame.S
│ │ ├── nrm2.S
│ │ ├── nrm2_sse.S
│ │ ├── qaxpy.S
│ │ ├── qconjg.S
│ │ ├── qdot.S
│ │ ├── qgemm_kernel_2x2.S
│ │ ├── qgemv_n.S
│ │ ├── qgemv_t.S
│ │ ├── qtrsm_kernel_LN_2x2.S
│ │ ├── qtrsm_kernel_LT_2x2.S
│ │ ├── qtrsm_kernel_RT_2x2.S
│ │ ├── rot.S
│ │ ├── rot_sse.S
│ │ ├── rot_sse2.S
│ │ ├── scal.S
│ │ ├── scal_sse.S
│ │ ├── scal_sse2.S
│ │ ├── staticbuffer.S
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── swap_sse.S
│ │ ├── swap_sse2.S
│ │ ├── trsm_kernel_LN_2x2.S
│ │ ├── trsm_kernel_LN_2x2_atom.S
│ │ ├── trsm_kernel_LN_2x4_penryn.S
│ │ ├── trsm_kernel_LN_2x4_sse2.S
│ │ ├── trsm_kernel_LN_2x4_sse3.S
│ │ ├── trsm_kernel_LN_4x2_core2.S
│ │ ├── trsm_kernel_LN_4x2_sse2.S
│ │ ├── trsm_kernel_LN_4x4_penryn.S
│ │ ├── trsm_kernel_LN_4x4_sse.S
│ │ ├── trsm_kernel_LN_8x2_sse.S
│ │ ├── trsm_kernel_LT_1x4.S
│ │ ├── trsm_kernel_LT_2x2.S
│ │ ├── trsm_kernel_LT_2x2_atom.S
│ │ ├── trsm_kernel_LT_2x4_penryn.S
│ │ ├── trsm_kernel_LT_2x4_sse2.S
│ │ ├── trsm_kernel_LT_2x4_sse3.S
│ │ ├── trsm_kernel_LT_4x2_core2.S
│ │ ├── trsm_kernel_LT_4x2_sse2.S
│ │ ├── trsm_kernel_LT_4x4_penryn.S
│ │ ├── trsm_kernel_LT_4x4_sse.S
│ │ ├── trsm_kernel_LT_8x2_sse.S
│ │ ├── trsm_kernel_RT_1x4.S
│ │ ├── trsm_kernel_RT_2x2.S
│ │ ├── trsm_kernel_RT_2x2_atom.S
│ │ ├── trsm_kernel_RT_2x4_penryn.S
│ │ ├── trsm_kernel_RT_2x4_sse2.S
│ │ ├── trsm_kernel_RT_2x4_sse3.S
│ │ ├── trsm_kernel_RT_4x2_core2.S
│ │ ├── trsm_kernel_RT_4x2_sse2.S
│ │ ├── trsm_kernel_RT_4x4_penryn.S
│ │ ├── trsm_kernel_RT_4x4_sse.S
│ │ ├── trsm_kernel_RT_8x2_sse.S
│ │ ├── xaxpy.S
│ │ ├── xdot.S
│ │ ├── xgemm3m_kernel_2x2.S
│ │ ├── xgemm_kernel_1x1.S
│ │ ├── xgemv_n.S
│ │ ├── xgemv_t.S
│ │ ├── xtrsm_kernel_LT_1x1.S
│ │ ├── zamax.S
│ │ ├── zamax_sse.S
│ │ ├── zamax_sse2.S
│ │ ├── zasum.S
│ │ ├── zasum_sse.S
│ │ ├── zasum_sse2.S
│ │ ├── zaxpy.S
│ │ ├── zaxpy_sse.S
│ │ ├── zaxpy_sse2.S
│ │ ├── zcopy.S
│ │ ├── zcopy_sse.S
│ │ ├── zcopy_sse2.S
│ │ ├── zdot.S
│ │ ├── zdot_amd.S
│ │ ├── zdot_sse.S
│ │ ├── zdot_sse2.S
│ │ ├── zgemm3m_kernel_1x4_athlon.S
│ │ ├── zgemm3m_kernel_2x2_atom.S
│ │ ├── zgemm3m_kernel_2x2_coppermine.S
│ │ ├── zgemm3m_kernel_2x4_barcelona.S
│ │ ├── zgemm3m_kernel_2x4_opteron.S
│ │ ├── zgemm3m_kernel_2x4_penryn.S
│ │ ├── zgemm3m_kernel_2x4_prescott.S
│ │ ├── zgemm3m_kernel_4x2_core2.S
│ │ ├── zgemm3m_kernel_4x2_northwood.S
│ │ ├── zgemm3m_kernel_4x4_barcelona.S
│ │ ├── zgemm3m_kernel_4x4_opteron.S
│ │ ├── zgemm3m_kernel_4x4_penryn.S
│ │ ├── zgemm3m_kernel_4x4_prescott.S
│ │ ├── zgemm3m_kernel_8x2_core2.S
│ │ ├── zgemm3m_kernel_8x2_sse.S
│ │ ├── zgemm_beta.S
│ │ ├── zgemm_kernel_1x1.S
│ │ ├── zgemm_kernel_1x1_atom.S
│ │ ├── zgemm_kernel_1x2.S
│ │ ├── zgemm_kernel_1x2_3dnow.S
│ │ ├── zgemm_kernel_1x2_barcelona.S
│ │ ├── zgemm_kernel_1x2_penryn.S
│ │ ├── zgemm_kernel_1x2_sse2.S
│ │ ├── zgemm_kernel_1x2_sse3.S
│ │ ├── zgemm_kernel_2x1_core2.S
│ │ ├── zgemm_kernel_2x1_sse2.S
│ │ ├── zgemm_kernel_2x2_barcelona.S
│ │ ├── zgemm_kernel_2x2_penryn.S
│ │ ├── zgemm_kernel_2x2_sse.S
│ │ ├── zgemm_kernel_2x2_sse3.S
│ │ ├── zgemm_kernel_4x1_core2.S
│ │ ├── zgemm_kernel_4x1_sse.S
│ │ ├── zgemm_ncopy_2.S
│ │ ├── zgemm_tcopy_2.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_n_atom.S
│ │ ├── zgemv_n_sse.S
│ │ ├── zgemv_n_sse2.S
│ │ ├── zgemv_t.S
│ │ ├── zgemv_t_atom.S
│ │ ├── zgemv_t_sse.S
│ │ ├── zgemv_t_sse2.S
│ │ ├── znrm2.S
│ │ ├── znrm2_sse.S
│ │ ├── zrot.S
│ │ ├── zrot_sse.S
│ │ ├── zrot_sse2.S
│ │ ├── zscal.S
│ │ ├── zscal_sse.S
│ │ ├── zscal_sse2.S
│ │ ├── zsum.S
│ │ ├── zswap.S
│ │ ├── zswap_sse.S
│ │ ├── zswap_sse2.S
│ │ ├── ztrsm_kernel_LN_2x1_core2.S
│ │ ├── ztrsm_kernel_LN_2x1_sse2.S
│ │ ├── ztrsm_kernel_LN_2x2_penryn.S
│ │ ├── ztrsm_kernel_LN_2x2_sse.S
│ │ ├── ztrsm_kernel_LN_4x1_sse.S
│ │ ├── ztrsm_kernel_LT_1x1.S
│ │ ├── ztrsm_kernel_LT_1x1_atom.S
│ │ ├── ztrsm_kernel_LT_1x2_penryn.S
│ │ ├── ztrsm_kernel_LT_1x2_sse2.S
│ │ ├── ztrsm_kernel_LT_1x2_sse3.S
│ │ ├── ztrsm_kernel_LT_2x1_core2.S
│ │ ├── ztrsm_kernel_LT_2x1_sse2.S
│ │ ├── ztrsm_kernel_LT_2x2_penryn.S
│ │ ├── ztrsm_kernel_LT_2x2_sse.S
│ │ ├── ztrsm_kernel_LT_4x1_sse.S
│ │ ├── ztrsm_kernel_RT_1x2_penryn.S
│ │ ├── ztrsm_kernel_RT_1x2_sse2.S
│ │ ├── ztrsm_kernel_RT_1x2_sse3.S
│ │ ├── ztrsm_kernel_RT_2x2_penryn.S
│ │ └── ztrsm_kernel_RT_2x2_sse.S
│ ├── x86_64/
│ │ ├── KERNEL
│ │ ├── KERNEL.ATOM
│ │ ├── KERNEL.BARCELONA
│ │ ├── KERNEL.BOBCAT
│ │ ├── KERNEL.BULLDOZER
│ │ ├── KERNEL.COOPERLAKE
│ │ ├── KERNEL.CORE2
│ │ ├── KERNEL.DUNNINGTON
│ │ ├── KERNEL.EXCAVATOR
│ │ ├── KERNEL.HASWELL
│ │ ├── KERNEL.NANO
│ │ ├── KERNEL.NEHALEM
│ │ ├── KERNEL.OPTERON
│ │ ├── KERNEL.OPTERON_SSE3
│ │ ├── KERNEL.PENRYN
│ │ ├── KERNEL.PILEDRIVER
│ │ ├── KERNEL.PRESCOTT
│ │ ├── KERNEL.SANDYBRIDGE
│ │ ├── KERNEL.SAPPHIRERAPIDS
│ │ ├── KERNEL.SKYLAKEX
│ │ ├── KERNEL.STEAMROLLER
│ │ ├── KERNEL.ZEN
│ │ ├── KERNEL.generic
│ │ ├── Makefile
│ │ ├── amax.S
│ │ ├── amax_atom.S
│ │ ├── amax_sse.S
│ │ ├── amax_sse2.S
│ │ ├── asum.S
│ │ ├── asum_atom.S
│ │ ├── asum_sse.S
│ │ ├── asum_sse2.S
│ │ ├── axpy.S
│ │ ├── axpy_atom.S
│ │ ├── axpy_sse.S
│ │ ├── axpy_sse2.S
│ │ ├── bf16_common_macros.h
│ │ ├── bf16to.c
│ │ ├── builtin_stinit.S
│ │ ├── cabs.S
│ │ ├── casum.c
│ │ ├── casum_microk_skylakex-2.c
│ │ ├── caxpy.c
│ │ ├── caxpy_microk_bulldozer-2.c
│ │ ├── caxpy_microk_haswell-2.c
│ │ ├── caxpy_microk_sandy-2.c
│ │ ├── caxpy_microk_steamroller-2.c
│ │ ├── cdot.c
│ │ ├── cdot_microk_bulldozer-2.c
│ │ ├── cdot_microk_haswell-2.c
│ │ ├── cdot_microk_sandy-2.c
│ │ ├── cdot_microk_steamroller-2.c
│ │ ├── cgemm3m_kernel_8x4_haswell.c
│ │ ├── cgemm_kernel_4x2_bulldozer.S
│ │ ├── cgemm_kernel_4x2_piledriver.S
│ │ ├── cgemm_kernel_4x8_sandy.S
│ │ ├── cgemm_kernel_8x2_haswell.S
│ │ ├── cgemm_kernel_8x2_haswell.c
│ │ ├── cgemm_kernel_8x2_sandy.S
│ │ ├── cgemm_kernel_8x2_skylakex.c
│ │ ├── cgemv_n.S
│ │ ├── cgemv_n_4.c
│ │ ├── cgemv_n_microk_bulldozer-4.c
│ │ ├── cgemv_n_microk_haswell-4.c
│ │ ├── cgemv_t.S
│ │ ├── cgemv_t_4.c
│ │ ├── cgemv_t_microk_bulldozer-4.c
│ │ ├── cgemv_t_microk_haswell-4.c
│ │ ├── copy.S
│ │ ├── copy_sse.S
│ │ ├── copy_sse2.S
│ │ ├── cscal.c
│ │ ├── cscal_microk_bulldozer-2.c
│ │ ├── cscal_microk_haswell-2.c
│ │ ├── cscal_microk_skylakex-2.c
│ │ ├── cscal_microk_steamroller-2.c
│ │ ├── csum.c
│ │ ├── csum_microk_skylakex-2.c
│ │ ├── ctrsm_kernel_LN_bulldozer.c
│ │ ├── ctrsm_kernel_LT_bulldozer.c
│ │ ├── ctrsm_kernel_RN_bulldozer.c
│ │ ├── ctrsm_kernel_RT_bulldozer.c
│ │ ├── dasum.c
│ │ ├── dasum_microk_haswell-2.c
│ │ ├── dasum_microk_skylakex-2.c
│ │ ├── daxpy.c
│ │ ├── daxpy_bulldozer.S
│ │ ├── daxpy_microk_bulldozer-2.c
│ │ ├── daxpy_microk_haswell-2.c
│ │ ├── daxpy_microk_nehalem-2.c
│ │ ├── daxpy_microk_piledriver-2.c
│ │ ├── daxpy_microk_sandy-2.c
│ │ ├── daxpy_microk_skylakex-2.c
│ │ ├── daxpy_microk_steamroller-2.c
│ │ ├── dcopy_bulldozer.S
│ │ ├── ddot.c
│ │ ├── ddot_bulldozer.S
│ │ ├── ddot_microk_bulldozer-2.c
│ │ ├── ddot_microk_haswell-2.c
│ │ ├── ddot_microk_nehalem-2.c
│ │ ├── ddot_microk_piledriver-2.c
│ │ ├── ddot_microk_sandy-2.c
│ │ ├── ddot_microk_skylakex-2.c
│ │ ├── ddot_microk_steamroller-2.c
│ │ ├── dgemm_beta_skylakex.c
│ │ ├── dgemm_kernel_16x2_haswell.S
│ │ ├── dgemm_kernel_16x2_skylakex.S
│ │ ├── dgemm_kernel_16x2_skylakex.c
│ │ ├── dgemm_kernel_4x4_haswell.S
│ │ ├── dgemm_kernel_4x8_haswell.S
│ │ ├── dgemm_kernel_4x8_sandy.S
│ │ ├── dgemm_kernel_4x8_skylakex.c
│ │ ├── dgemm_kernel_4x8_skylakex_2.c
│ │ ├── dgemm_kernel_6x4_piledriver.S
│ │ ├── dgemm_kernel_8x2_bulldozer.S
│ │ ├── dgemm_kernel_8x2_piledriver.S
│ │ ├── dgemm_kernel_8x8_skylakex.c
│ │ ├── dgemm_ncopy_2.S
│ │ ├── dgemm_ncopy_4.S
│ │ ├── dgemm_ncopy_8.S
│ │ ├── dgemm_ncopy_8_bulldozer.S
│ │ ├── dgemm_ncopy_8_skylakex.c
│ │ ├── dgemm_small_kernel_nn_skylakex.c
│ │ ├── dgemm_small_kernel_nt_skylakex.c
│ │ ├── dgemm_small_kernel_permit_skylakex.c
│ │ ├── dgemm_small_kernel_tn_skylakex.c
│ │ ├── dgemm_small_kernel_tt_skylakex.c
│ │ ├── dgemm_tcopy_16_skylakex.c
│ │ ├── dgemm_tcopy_2.S
│ │ ├── dgemm_tcopy_4.S
│ │ ├── dgemm_tcopy_8.S
│ │ ├── dgemm_tcopy_8_bulldozer.S
│ │ ├── dgemm_tcopy_8_skylakex.c
│ │ ├── dgemv_n.S
│ │ ├── dgemv_n_4.c
│ │ ├── dgemv_n_atom.S
│ │ ├── dgemv_n_bulldozer.S
│ │ ├── dgemv_n_microk_haswell-4.c
│ │ ├── dgemv_n_microk_nehalem-4.c
│ │ ├── dgemv_n_microk_piledriver-4.c
│ │ ├── dgemv_n_microk_skylakex-4.c
│ │ ├── dgemv_t.S
│ │ ├── dgemv_t_4.c
│ │ ├── dgemv_t_atom.S
│ │ ├── dgemv_t_bulldozer.S
│ │ ├── dgemv_t_microk_haswell-4.c
│ │ ├── dger.c
│ │ ├── dger_microk_sandy-2.c
│ │ ├── dot.S
│ │ ├── dot_atom.S
│ │ ├── dot_sse.S
│ │ ├── dot_sse2.S
│ │ ├── drot.c
│ │ ├── drot_microk_haswell-2.c
│ │ ├── drot_microk_skylakex-2.c
│ │ ├── dscal.c
│ │ ├── dscal_microk_bulldozer-2.c
│ │ ├── dscal_microk_haswell-2.c
│ │ ├── dscal_microk_sandy-2.c
│ │ ├── dscal_microk_skylakex-2.c
│ │ ├── dsymv_L.c
│ │ ├── dsymv_L_microk_bulldozer-2.c
│ │ ├── dsymv_L_microk_haswell-2.c
│ │ ├── dsymv_L_microk_nehalem-2.c
│ │ ├── dsymv_L_microk_sandy-2.c
│ │ ├── dsymv_L_microk_skylakex-2.c
│ │ ├── dsymv_U.c
│ │ ├── dsymv_U_microk_bulldozer-2.c
│ │ ├── dsymv_U_microk_haswell-2.c
│ │ ├── dsymv_U_microk_nehalem-2.c
│ │ ├── dsymv_U_microk_sandy-2.c
│ │ ├── dtobf16_microk_cooperlake.c
│ │ ├── dtrmm_kernel_4x8_haswell.c
│ │ ├── dtrsm_kernel_LN_bulldozer.c
│ │ ├── dtrsm_kernel_LT_8x2_bulldozer.S
│ │ ├── dtrsm_kernel_RN_8x2_bulldozer.S
│ │ ├── dtrsm_kernel_RN_haswell.c
│ │ ├── dtrsm_kernel_RT_bulldozer.c
│ │ ├── gemm_beta.S
│ │ ├── gemm_kernel_2x8_nehalem.S
│ │ ├── gemm_kernel_4x2_atom.S
│ │ ├── gemm_kernel_4x4_barcelona.S
│ │ ├── gemm_kernel_4x4_core2.S
│ │ ├── gemm_kernel_4x4_penryn.S
│ │ ├── gemm_kernel_4x4_sse2.S
│ │ ├── gemm_kernel_4x4_sse3.S
│ │ ├── gemm_kernel_4x8_nano.S
│ │ ├── gemm_kernel_4x8_nehalem.S
│ │ ├── gemm_kernel_8x4_barcelona.S
│ │ ├── gemm_kernel_8x4_core2.S
│ │ ├── gemm_kernel_8x4_penryn.S
│ │ ├── gemm_kernel_8x4_sse.S
│ │ ├── gemm_kernel_8x4_sse3.S
│ │ ├── gemm_ncopy_2.S
│ │ ├── gemm_ncopy_2_bulldozer.S
│ │ ├── gemm_ncopy_4.S
│ │ ├── gemm_ncopy_4_opteron.S
│ │ ├── gemm_tcopy_2.S
│ │ ├── gemm_tcopy_2_bulldozer.S
│ │ ├── gemm_tcopy_4.S
│ │ ├── gemm_tcopy_4_opteron.S
│ │ ├── iamax.S
│ │ ├── iamax_sse.S
│ │ ├── iamax_sse2.S
│ │ ├── izamax.S
│ │ ├── izamax_sse.S
│ │ ├── izamax_sse2.S
│ │ ├── lsame.S
│ │ ├── mcount.S
│ │ ├── nrm2.S
│ │ ├── nrm2_sse.S
│ │ ├── omatcopy_ct.c
│ │ ├── omatcopy_rt.c
│ │ ├── qconjg.S
│ │ ├── qdot.S
│ │ ├── qgemm_kernel_2x2.S
│ │ ├── qgemv_n.S
│ │ ├── qgemv_t.S
│ │ ├── qtrsm_kernel_LN_2x2.S
│ │ ├── qtrsm_kernel_LT_2x2.S
│ │ ├── qtrsm_kernel_RT_2x2.S
│ │ ├── rot.S
│ │ ├── rot_sse.S
│ │ ├── rot_sse2.S
│ │ ├── sasum.c
│ │ ├── sasum_microk_haswell-2.c
│ │ ├── sasum_microk_skylakex-2.c
│ │ ├── saxpy.c
│ │ ├── saxpy_microk_haswell-2.c
│ │ ├── saxpy_microk_nehalem-2.c
│ │ ├── saxpy_microk_piledriver-2.c
│ │ ├── saxpy_microk_sandy-2.c
│ │ ├── saxpy_microk_skylakex-2.c
│ │ ├── sbdot.c
│ │ ├── sbdot_microk_cooperlake.c
│ │ ├── sbgemm_block_microk_cooperlake.c
│ │ ├── sbgemm_kernel_16x16_spr.c
│ │ ├── sbgemm_kernel_16x16_spr_tmpl.c
│ │ ├── sbgemm_kernel_16x4_cooperlake.c
│ │ ├── sbgemm_microk_cooperlake_template.c
│ │ ├── sbgemm_ncopy_16_cooperlake.c
│ │ ├── sbgemm_ncopy_4_cooperlake.c
│ │ ├── sbgemm_oncopy_16_spr.c
│ │ ├── sbgemm_otcopy_16_spr.c
│ │ ├── sbgemm_small_kernel_nn_cooperlake.c
│ │ ├── sbgemm_small_kernel_nt_cooperlake.c
│ │ ├── sbgemm_small_kernel_permit_cooperlake.c
│ │ ├── sbgemm_small_kernel_permit_spr.c
│ │ ├── sbgemm_small_kernel_template_cooperlake.c
│ │ ├── sbgemm_small_kernel_tn_cooperlake.c
│ │ ├── sbgemm_small_kernel_tt_cooperlake.c
│ │ ├── sbgemm_tcopy_16_cooperlake.c
│ │ ├── sbgemm_tcopy_4_cooperlake.c
│ │ ├── sbgemv_n.c
│ │ ├── sbgemv_n_microk_cooperlake.c
│ │ ├── sbgemv_n_microk_cooperlake_template.c
│ │ ├── sbgemv_t.c
│ │ ├── sbgemv_t_microk_cooperlake.c
│ │ ├── sbgemv_t_microk_cooperlake_template.c
│ │ ├── scal.S
│ │ ├── scal_atom.S
│ │ ├── scal_sse.S
│ │ ├── scal_sse2.S
│ │ ├── sdot.c
│ │ ├── sdot_microk_bulldozer-2.c
│ │ ├── sdot_microk_haswell-2.c
│ │ ├── sdot_microk_nehalem-2.c
│ │ ├── sdot_microk_sandy-2.c
│ │ ├── sdot_microk_skylakex-2.c
│ │ ├── sdot_microk_steamroller-2.c
│ │ ├── sgemm_beta_skylakex.c
│ │ ├── sgemm_direct_performant.c
│ │ ├── sgemm_direct_skylakex.c
│ │ ├── sgemm_kernel_16x2_bulldozer.S
│ │ ├── sgemm_kernel_16x2_piledriver.S
│ │ ├── sgemm_kernel_16x4_haswell.S
│ │ ├── sgemm_kernel_16x4_sandy.S
│ │ ├── sgemm_kernel_16x4_skylakex.S
│ │ ├── sgemm_kernel_16x4_skylakex.c
│ │ ├── sgemm_kernel_16x4_skylakex_2.c
│ │ ├── sgemm_kernel_16x4_skylakex_3.c
│ │ ├── sgemm_kernel_8x4_bulldozer.S
│ │ ├── sgemm_kernel_8x4_haswell.c
│ │ ├── sgemm_kernel_8x4_haswell_2.c
│ │ ├── sgemm_kernel_8x8_sandy.S
│ │ ├── sgemm_ncopy_4_skylakex.c
│ │ ├── sgemm_small_kernel_nn_skylakex.c
│ │ ├── sgemm_small_kernel_nt_skylakex.c
│ │ ├── sgemm_small_kernel_permit_skylakex.c
│ │ ├── sgemm_small_kernel_tn_skylakex.c
│ │ ├── sgemm_small_kernel_tt_skylakex.c
│ │ ├── sgemm_tcopy_16_skylakex.c
│ │ ├── sgemv_n.S
│ │ ├── sgemv_n.c
│ │ ├── sgemv_n_4.c
│ │ ├── sgemv_n_microk_bulldozer-4.c
│ │ ├── sgemv_n_microk_haswell-4.c
│ │ ├── sgemv_n_microk_nehalem-4.c
│ │ ├── sgemv_n_microk_sandy-4.c
│ │ ├── sgemv_n_microk_skylakex-8.c
│ │ ├── sgemv_t.S
│ │ ├── sgemv_t.c
│ │ ├── sgemv_t_4.c
│ │ ├── sgemv_t_microk_bulldozer-4.c
│ │ ├── sgemv_t_microk_haswell-4.c
│ │ ├── sgemv_t_microk_nehalem-4.c
│ │ ├── sgemv_t_microk_sandy-4.c
│ │ ├── sgemv_t_microk_skylakex.c
│ │ ├── sgemv_t_microk_skylakex_template.c
│ │ ├── sger.c
│ │ ├── sger_microk_sandy-2.c
│ │ ├── srot.c
│ │ ├── srot_microk_haswell-2.c
│ │ ├── srot_microk_skylakex-2.c
│ │ ├── sscal.c
│ │ ├── sscal_microk_haswell-2.c
│ │ ├── sscal_microk_skylakex-2.c
│ │ ├── ssymv_L.c
│ │ ├── ssymv_L_microk_bulldozer-2.c
│ │ ├── ssymv_L_microk_haswell-2.c
│ │ ├── ssymv_L_microk_nehalem-2.c
│ │ ├── ssymv_L_microk_sandy-2.c
│ │ ├── ssymv_U.c
│ │ ├── ssymv_U_microk_bulldozer-2.c
│ │ ├── ssymv_U_microk_haswell-2.c
│ │ ├── ssymv_U_microk_nehalem-2.c
│ │ ├── ssymv_U_microk_sandy-2.c
│ │ ├── staticbuffer.S
│ │ ├── stobf16_microk_cooperlake.c
│ │ ├── strsm_kernel_8x4_haswell_LN.c
│ │ ├── strsm_kernel_8x4_haswell_LT.c
│ │ ├── strsm_kernel_8x4_haswell_L_common.h
│ │ ├── strsm_kernel_8x4_haswell_RN.c
│ │ ├── strsm_kernel_8x4_haswell_RT.c
│ │ ├── strsm_kernel_8x4_haswell_R_common.h
│ │ ├── strsm_kernel_LN_bulldozer.c
│ │ ├── strsm_kernel_LT_bulldozer.c
│ │ ├── strsm_kernel_RN_bulldozer.c
│ │ ├── strsm_kernel_RT_bulldozer.c
│ │ ├── sum.S
│ │ ├── swap.S
│ │ ├── swap_sse.S
│ │ ├── swap_sse2.S
│ │ ├── symv_L_sse.S
│ │ ├── symv_L_sse2.S
│ │ ├── symv_U_sse.S
│ │ ├── symv_U_sse2.S
│ │ ├── tobf16.c
│ │ ├── trsm_kernel_LN_2x8_nehalem.S
│ │ ├── trsm_kernel_LN_4x2_atom.S
│ │ ├── trsm_kernel_LN_4x4_barcelona.S
│ │ ├── trsm_kernel_LN_4x4_core2.S
│ │ ├── trsm_kernel_LN_4x4_penryn.S
│ │ ├── trsm_kernel_LN_4x4_sse2.S
│ │ ├── trsm_kernel_LN_4x4_sse3.S
│ │ ├── trsm_kernel_LN_4x8_nehalem.S
│ │ ├── trsm_kernel_LN_8x4_sse.S
│ │ ├── trsm_kernel_LT_2x8_nehalem.S
│ │ ├── trsm_kernel_LT_4x2_atom.S
│ │ ├── trsm_kernel_LT_4x4_barcelona.S
│ │ ├── trsm_kernel_LT_4x4_core2.S
│ │ ├── trsm_kernel_LT_4x4_penryn.S
│ │ ├── trsm_kernel_LT_4x4_sse2.S
│ │ ├── trsm_kernel_LT_4x4_sse3.S
│ │ ├── trsm_kernel_LT_4x8_nehalem.S
│ │ ├── trsm_kernel_LT_8x4_sse.S
│ │ ├── trsm_kernel_RT_2x8_nehalem.S
│ │ ├── trsm_kernel_RT_4x2_atom.S
│ │ ├── trsm_kernel_RT_4x4_barcelona.S
│ │ ├── trsm_kernel_RT_4x4_core2.S
│ │ ├── trsm_kernel_RT_4x4_penryn.S
│ │ ├── trsm_kernel_RT_4x4_sse2.S
│ │ ├── trsm_kernel_RT_4x4_sse3.S
│ │ ├── trsm_kernel_RT_4x8_nehalem.S
│ │ ├── trsm_kernel_RT_8x4_sse.S
│ │ ├── xdot.S
│ │ ├── xgemm3m_kernel_2x2.S
│ │ ├── xgemm_kernel_1x1.S
│ │ ├── xgemv_n.S
│ │ ├── xgemv_t.S
│ │ ├── xtrsm_kernel_LT_1x1.S
│ │ ├── zamax.S
│ │ ├── zamax_atom.S
│ │ ├── zamax_sse.S
│ │ ├── zamax_sse2.S
│ │ ├── zasum.S
│ │ ├── zasum.c
│ │ ├── zasum_atom.S
│ │ ├── zasum_microk_skylakex-2.c
│ │ ├── zasum_sse.S
│ │ ├── zasum_sse2.S
│ │ ├── zaxpy.S
│ │ ├── zaxpy.c
│ │ ├── zaxpy_atom.S
│ │ ├── zaxpy_microk_bulldozer-2.c
│ │ ├── zaxpy_microk_haswell-2.c
│ │ ├── zaxpy_microk_sandy-2.c
│ │ ├── zaxpy_microk_steamroller-2.c
│ │ ├── zaxpy_sse.S
│ │ ├── zaxpy_sse2.S
│ │ ├── zcopy.S
│ │ ├── zcopy_sse.S
│ │ ├── zcopy_sse2.S
│ │ ├── zdot.S
│ │ ├── zdot.c
│ │ ├── zdot_atom.S
│ │ ├── zdot_microk_bulldozer-2.c
│ │ ├── zdot_microk_haswell-2.c
│ │ ├── zdot_microk_sandy-2.c
│ │ ├── zdot_microk_steamroller-2.c
│ │ ├── zdot_sse.S
│ │ ├── zdot_sse2.S
│ │ ├── zgemm3m_kernel_2x8_nehalem.S
│ │ ├── zgemm3m_kernel_4x2_atom.S
│ │ ├── zgemm3m_kernel_4x4_barcelona.S
│ │ ├── zgemm3m_kernel_4x4_core2.S
│ │ ├── zgemm3m_kernel_4x4_haswell.c
│ │ ├── zgemm3m_kernel_4x4_penryn.S
│ │ ├── zgemm3m_kernel_4x4_sse2.S
│ │ ├── zgemm3m_kernel_4x4_sse3.S
│ │ ├── zgemm3m_kernel_4x8_nehalem.S
│ │ ├── zgemm3m_kernel_8x4_barcelona.S
│ │ ├── zgemm3m_kernel_8x4_core2.S
│ │ ├── zgemm3m_kernel_8x4_penryn.S
│ │ ├── zgemm3m_kernel_8x4_sse.S
│ │ ├── zgemm3m_kernel_8x4_sse3.S
│ │ ├── zgemm_beta.S
│ │ ├── zgemm_kernel_1x4_nehalem.S
│ │ ├── zgemm_kernel_2x1_atom.S
│ │ ├── zgemm_kernel_2x2_barcelona.S
│ │ ├── zgemm_kernel_2x2_bulldozer.S
│ │ ├── zgemm_kernel_2x2_core2.S
│ │ ├── zgemm_kernel_2x2_penryn.S
│ │ ├── zgemm_kernel_2x2_piledriver.S
│ │ ├── zgemm_kernel_2x2_sse2.S
│ │ ├── zgemm_kernel_2x2_sse3.S
│ │ ├── zgemm_kernel_2x4_nehalem.S
│ │ ├── zgemm_kernel_4x2_barcelona.S
│ │ ├── zgemm_kernel_4x2_core2.S
│ │ ├── zgemm_kernel_4x2_haswell.S
│ │ ├── zgemm_kernel_4x2_haswell.c
│ │ ├── zgemm_kernel_4x2_penryn.S
│ │ ├── zgemm_kernel_4x2_skylakex.c
│ │ ├── zgemm_kernel_4x2_sse.S
│ │ ├── zgemm_kernel_4x2_sse3.S
│ │ ├── zgemm_kernel_4x4_sandy.S
│ │ ├── zgemm_ncopy_1.S
│ │ ├── zgemm_ncopy_2.S
│ │ ├── zgemm_tcopy_1.S
│ │ ├── zgemm_tcopy_2.S
│ │ ├── zgemv_n.S
│ │ ├── zgemv_n_4.c
│ │ ├── zgemv_n_atom.S
│ │ ├── zgemv_n_dup.S
│ │ ├── zgemv_n_microk_bulldozer-4.c
│ │ ├── zgemv_n_microk_haswell-4.c
│ │ ├── zgemv_n_microk_sandy-4.c
│ │ ├── zgemv_t.S
│ │ ├── zgemv_t_4.c
│ │ ├── zgemv_t_atom.S
│ │ ├── zgemv_t_dup.S
│ │ ├── zgemv_t_microk_bulldozer-4.c
│ │ ├── zgemv_t_microk_haswell-4.c
│ │ ├── znrm2.S
│ │ ├── znrm2_sse.S
│ │ ├── zrot.S
│ │ ├── zrot_sse.S
│ │ ├── zrot_sse2.S
│ │ ├── zscal.S
│ │ ├── zscal.c
│ │ ├── zscal_atom.S
│ │ ├── zscal_microk_bulldozer-2.c
│ │ ├── zscal_microk_haswell-2.c
│ │ ├── zscal_microk_skylakex-2.c
│ │ ├── zscal_microk_steamroller-2.c
│ │ ├── zscal_sse.S
│ │ ├── zscal_sse2.S
│ │ ├── zsum.S
│ │ ├── zsum.c
│ │ ├── zsum_microk_skylakex-2.c
│ │ ├── zsum_sse.S
│ │ ├── zsum_sse2.S
│ │ ├── zswap.S
│ │ ├── zswap_sse.S
│ │ ├── zswap_sse2.S
│ │ ├── zsymv_L_sse.S
│ │ ├── zsymv_L_sse2.S
│ │ ├── zsymv_U_sse.S
│ │ ├── zsymv_U_sse2.S
│ │ ├── ztrsm_kernel_LN_2x1_atom.S
│ │ ├── ztrsm_kernel_LN_2x2_core2.S
│ │ ├── ztrsm_kernel_LN_2x2_penryn.S
│ │ ├── ztrsm_kernel_LN_2x2_sse2.S
│ │ ├── ztrsm_kernel_LN_2x2_sse3.S
│ │ ├── ztrsm_kernel_LN_2x4_nehalem.S
│ │ ├── ztrsm_kernel_LN_4x2_sse.S
│ │ ├── ztrsm_kernel_LN_bulldozer.c
│ │ ├── ztrsm_kernel_LT_1x4_nehalem.S
│ │ ├── ztrsm_kernel_LT_2x1_atom.S
│ │ ├── ztrsm_kernel_LT_2x2_core2.S
│ │ ├── ztrsm_kernel_LT_2x2_penryn.S
│ │ ├── ztrsm_kernel_LT_2x2_sse2.S
│ │ ├── ztrsm_kernel_LT_2x2_sse3.S
│ │ ├── ztrsm_kernel_LT_2x4_nehalem.S
│ │ ├── ztrsm_kernel_LT_4x2_sse.S
│ │ ├── ztrsm_kernel_LT_bulldozer.c
│ │ ├── ztrsm_kernel_RN_bulldozer.c
│ │ ├── ztrsm_kernel_RT_1x4_nehalem.S
│ │ ├── ztrsm_kernel_RT_2x2_core2.S
│ │ ├── ztrsm_kernel_RT_2x2_penryn.S
│ │ ├── ztrsm_kernel_RT_2x2_sse2.S
│ │ ├── ztrsm_kernel_RT_2x2_sse3.S
│ │ ├── ztrsm_kernel_RT_2x4_nehalem.S
│ │ ├── ztrsm_kernel_RT_4x2_sse.S
│ │ └── ztrsm_kernel_RT_bulldozer.c
│ └── zarch/
│ ├── KERNEL
│ ├── KERNEL.Z13
│ ├── KERNEL.Z14
│ ├── KERNEL.ZARCH_GENERIC
│ ├── Makefile
│ ├── camax.c
│ ├── camin.c
│ ├── casum.c
│ ├── caxpy.c
│ ├── ccopy.c
│ ├── cdot.c
│ ├── cgemv_n_4.c
│ ├── cgemv_t_4.c
│ ├── ckernelMacrosV.S
│ ├── crot.c
│ ├── cscal.c
│ ├── csum.c
│ ├── cswap.c
│ ├── ctrmm4x4V.S
│ ├── damax.c
│ ├── damax_z13.c
│ ├── damin.c
│ ├── damin_z13.c
│ ├── dasum.c
│ ├── daxpy.c
│ ├── dcopy.c
│ ├── ddot.c
│ ├── dgemv_n_4.c
│ ├── dgemv_t_4.c
│ ├── dmax.c
│ ├── dmax_z13.c
│ ├── dmin.c
│ ├── dmin_z13.c
│ ├── drot.c
│ ├── dscal.c
│ ├── dsdot.c
│ ├── dsum.c
│ ├── dswap.c
│ ├── gemm8x4V.S
│ ├── gemm_vec.c
│ ├── icamax.c
│ ├── icamin.c
│ ├── idamax.c
│ ├── idamin.c
│ ├── idmax.c
│ ├── idmin.c
│ ├── isamax.c
│ ├── isamin.c
│ ├── ismax.c
│ ├── ismin.c
│ ├── izamax.c
│ ├── izamin.c
│ ├── kernelMacros.S
│ ├── samax.c
│ ├── samin.c
│ ├── sasum.c
│ ├── saxpy.c
│ ├── scopy.c
│ ├── sdot.c
│ ├── sgemv_n_4.c
│ ├── sgemv_t_4.c
│ ├── skernelMacros.S
│ ├── smax.c
│ ├── smin.c
│ ├── srot.c
│ ├── sscal.c
│ ├── ssum.c
│ ├── sswap.c
│ ├── strmm8x4V.S
│ ├── trmm8x4V.S
│ ├── vector-common.h
│ ├── zamax.c
│ ├── zamax_z13.c
│ ├── zamin.c
│ ├── zamin_z13.c
│ ├── zasum.c
│ ├── zaxpy.c
│ ├── zcopy.c
│ ├── zdot.c
│ ├── zgemv_n_4.c
│ ├── zgemv_t_4.c
│ ├── zkernelMacrosV.S
│ ├── zrot.c
│ ├── zscal.c
│ ├── zsum.c
│ ├── zswap.c
│ └── ztrmm4x4V.S
├── l1param.h
├── l2param.h
├── lapack/
│ ├── CMakeLists.txt
│ ├── Makefile
│ ├── getf2/
│ │ ├── Makefile
│ │ ├── getf2_k.c
│ │ └── zgetf2_k.c
│ ├── getrf/
│ │ ├── Makefile
│ │ ├── getrf_parallel.c
│ │ ├── getrf_parallel_omp.c
│ │ └── getrf_single.c
│ ├── getrs/
│ │ ├── Makefile
│ │ ├── getrs_parallel.c
│ │ ├── getrs_single.c
│ │ ├── zgetrs_parallel.c
│ │ └── zgetrs_single.c
│ ├── laed3/
│ │ ├── Makefile
│ │ ├── laed3_parallel.c
│ │ └── laed3_single.c
│ ├── laswp/
│ │ ├── Makefile
│ │ ├── alpha/
│ │ │ └── Makefile
│ │ ├── arm/
│ │ │ └── Makefile
│ │ ├── arm64/
│ │ │ └── Makefile
│ │ ├── csky/
│ │ │ └── Makefile
│ │ ├── generic/
│ │ │ ├── Makefile
│ │ │ ├── laswp_k.c
│ │ │ ├── laswp_k_1.c
│ │ │ ├── laswp_k_2.c
│ │ │ ├── laswp_k_4.c
│ │ │ ├── laswp_k_8.c
│ │ │ ├── zlaswp_k.c
│ │ │ ├── zlaswp_k_1.c
│ │ │ ├── zlaswp_k_2.c
│ │ │ └── zlaswp_k_4.c
│ │ ├── ia64/
│ │ │ └── Makefile
│ │ ├── loongarch64/
│ │ │ └── Makefile
│ │ ├── mips/
│ │ │ └── Makefile
│ │ ├── mips64/
│ │ │ └── Makefile
│ │ ├── power/
│ │ │ └── Makefile
│ │ ├── riscv64/
│ │ │ └── Makefile
│ │ ├── sparc/
│ │ │ └── Makefile
│ │ ├── wasm/
│ │ │ └── Makefile
│ │ ├── x86/
│ │ │ └── Makefile
│ │ ├── x86_64/
│ │ │ └── Makefile
│ │ └── zarch/
│ │ └── Makefile
│ ├── lauu2/
│ │ ├── Makefile
│ │ ├── lauu2_L.c
│ │ ├── lauu2_U.c
│ │ ├── zlauu2_L.c
│ │ └── zlauu2_U.c
│ ├── lauum/
│ │ ├── Makefile
│ │ ├── lauum_L_parallel.c
│ │ ├── lauum_L_single.c
│ │ ├── lauum_U_parallel.c
│ │ └── lauum_U_single.c
│ ├── potf2/
│ │ ├── Makefile
│ │ ├── potf2_L.c
│ │ ├── potf2_U.c
│ │ ├── zpotf2_L.c
│ │ └── zpotf2_U.c
│ ├── potrf/
│ │ ├── Makefile
│ │ ├── potrf_L_parallel.c
│ │ ├── potrf_L_single.c
│ │ ├── potrf_U_parallel.c
│ │ ├── potrf_U_single.c
│ │ └── potrf_parallel.c
│ ├── trti2/
│ │ ├── Makefile
│ │ ├── trti2_L.c
│ │ ├── trti2_U.c
│ │ ├── ztrti2_L.c
│ │ └── ztrti2_U.c
│ ├── trtri/
│ │ ├── Makefile
│ │ ├── trtri_L_parallel.c
│ │ ├── trtri_L_single.c
│ │ ├── trtri_U_parallel.c
│ │ └── trtri_U_single.c
│ └── trtrs/
│ ├── Makefile
│ ├── trtrs_parallel.c
│ ├── trtrs_single.c
│ ├── ztrtrs_parallel.c
│ └── ztrtrs_single.c
├── lapack-netlib/
│ ├── .appveyor.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── BLAS/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile
│ │ ├── SRC/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── caxpy.f
│ │ │ ├── ccopy.f
│ │ │ ├── cdotc.f
│ │ │ ├── cdotu.f
│ │ │ ├── cgbmv.f
│ │ │ ├── cgemm.f
│ │ │ ├── cgemv.f
│ │ │ ├── cgerc.f
│ │ │ ├── cgeru.f
│ │ │ ├── chbmv.f
│ │ │ ├── chemm.f
│ │ │ ├── chemv.f
│ │ │ ├── cher.f
│ │ │ ├── cher2.f
│ │ │ ├── cher2k.f
│ │ │ ├── cherk.f
│ │ │ ├── chpmv.f
│ │ │ ├── chpr.f
│ │ │ ├── chpr2.f
│ │ │ ├── crotg.f
│ │ │ ├── cscal.f
│ │ │ ├── csrot.f
│ │ │ ├── csscal.f
│ │ │ ├── cswap.f
│ │ │ ├── csymm.f
│ │ │ ├── csyr2k.f
│ │ │ ├── csyrk.f
│ │ │ ├── ctbmv.f
│ │ │ ├── ctbsv.f
│ │ │ ├── ctpmv.f
│ │ │ ├── ctpsv.f
│ │ │ ├── ctrmm.f
│ │ │ ├── ctrmv.f
│ │ │ ├── ctrsm.f
│ │ │ ├── ctrsv.f
│ │ │ ├── dasum.f
│ │ │ ├── daxpy.f
│ │ │ ├── dcabs1.f
│ │ │ ├── dcopy.f
│ │ │ ├── ddot.f
│ │ │ ├── dgbmv.f
│ │ │ ├── dgemm.f
│ │ │ ├── dgemv.f
│ │ │ ├── dger.f
│ │ │ ├── dnrm2.f
│ │ │ ├── drot.f
│ │ │ ├── drotg.f
│ │ │ ├── drotm.f
│ │ │ ├── drotmg.f
│ │ │ ├── dsbmv.f
│ │ │ ├── dscal.f
│ │ │ ├── dsdot.f
│ │ │ ├── dspmv.f
│ │ │ ├── dspr.f
│ │ │ ├── dspr2.f
│ │ │ ├── dswap.f
│ │ │ ├── dsymm.f
│ │ │ ├── dsymv.f
│ │ │ ├── dsyr.f
│ │ │ ├── dsyr2.f
│ │ │ ├── dsyr2k.f
│ │ │ ├── dsyrk.f
│ │ │ ├── dtbmv.f
│ │ │ ├── dtbsv.f
│ │ │ ├── dtpmv.f
│ │ │ ├── dtpsv.f
│ │ │ ├── dtrmm.f
│ │ │ ├── dtrmv.f
│ │ │ ├── dtrsm.f
│ │ │ ├── dtrsv.f
│ │ │ ├── dzasum.f
│ │ │ ├── dznrm2.f
│ │ │ ├── icamax.f
│ │ │ ├── idamax.f
│ │ │ ├── isamax.f
│ │ │ ├── izamax.f
│ │ │ ├── lsame.f
│ │ │ ├── meson.build
│ │ │ ├── sasum.f
│ │ │ ├── saxpy.f
│ │ │ ├── scabs1.f
│ │ │ ├── scasum.f
│ │ │ ├── scnrm2.f
│ │ │ ├── scopy.f
│ │ │ ├── sdot.f
│ │ │ ├── sdsdot.f
│ │ │ ├── sgbmv.f
│ │ │ ├── sgemm.f
│ │ │ ├── sgemv.f
│ │ │ ├── sger.f
│ │ │ ├── snrm2.f
│ │ │ ├── srot.f
│ │ │ ├── srotg.f
│ │ │ ├── srotm.f
│ │ │ ├── srotmg.f
│ │ │ ├── ssbmv.f
│ │ │ ├── sscal.f
│ │ │ ├── sspmv.f
│ │ │ ├── sspr.f
│ │ │ ├── sspr2.f
│ │ │ ├── sswap.f
│ │ │ ├── ssymm.f
│ │ │ ├── ssymv.f
│ │ │ ├── ssyr.f
│ │ │ ├── ssyr2.f
│ │ │ ├── ssyr2k.f
│ │ │ ├── ssyrk.f
│ │ │ ├── stbmv.f
│ │ │ ├── stbsv.f
│ │ │ ├── stpmv.f
│ │ │ ├── stpsv.f
│ │ │ ├── strmm.f
│ │ │ ├── strmv.f
│ │ │ ├── strsm.f
│ │ │ ├── strsv.f
│ │ │ ├── xerbla.f
│ │ │ ├── xerbla_array.f
│ │ │ ├── zaxpy.f
│ │ │ ├── zcopy.f
│ │ │ ├── zdotc.f
│ │ │ ├── zdotu.f
│ │ │ ├── zdrot.f
│ │ │ ├── zdscal.f
│ │ │ ├── zgbmv.f
│ │ │ ├── zgemm.f
│ │ │ ├── zgemv.f
│ │ │ ├── zgerc.f
│ │ │ ├── zgeru.f
│ │ │ ├── zhbmv.f
│ │ │ ├── zhemm.f
│ │ │ ├── zhemv.f
│ │ │ ├── zher.f
│ │ │ ├── zher2.f
│ │ │ ├── zher2k.f
│ │ │ ├── zherk.f
│ │ │ ├── zhpmv.f
│ │ │ ├── zhpr.f
│ │ │ ├── zhpr2.f
│ │ │ ├── zrotg.f
│ │ │ ├── zscal.f
│ │ │ ├── zswap.f
│ │ │ ├── zsymm.f
│ │ │ ├── zsyr2k.f
│ │ │ ├── zsyrk.f
│ │ │ ├── ztbmv.f
│ │ │ ├── ztbsv.f
│ │ │ ├── ztpmv.f
│ │ │ ├── ztpsv.f
│ │ │ ├── ztrmm.f
│ │ │ ├── ztrmv.f
│ │ │ ├── ztrsm.f
│ │ │ └── ztrsv.f
│ │ ├── TESTING/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── cblat1.f
│ │ │ ├── cblat2.f
│ │ │ ├── cblat2.in
│ │ │ ├── cblat3.f
│ │ │ ├── cblat3.in
│ │ │ ├── dblat1.f
│ │ │ ├── dblat2.f
│ │ │ ├── dblat2.in
│ │ │ ├── dblat3.f
│ │ │ ├── dblat3.in
│ │ │ ├── sblat1.f
│ │ │ ├── sblat2.f
│ │ │ ├── sblat2.in
│ │ │ ├── sblat3.f
│ │ │ ├── sblat3.in
│ │ │ ├── zblat1.f
│ │ │ ├── zblat2.f
│ │ │ ├── zblat2.in
│ │ │ ├── zblat3.f
│ │ │ └── zblat3.in
│ │ └── blas.pc.in
│ ├── CBLAS/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile
│ │ ├── README
│ │ ├── cblas.pc.in
│ │ ├── cmake/
│ │ │ ├── cblas-config-build.cmake.in
│ │ │ ├── cblas-config-install.cmake.in
│ │ │ └── cblas-config-version.cmake.in
│ │ ├── examples/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── cblas_example1.c
│ │ │ └── cblas_example2.c
│ │ ├── include/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── cblas.h
│ │ │ ├── cblas_f77.h
│ │ │ ├── cblas_mangling_with_flags.h.in
│ │ │ └── cblas_test.h
│ │ ├── src/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── cblas_caxpy.c
│ │ │ ├── cblas_ccopy.c
│ │ │ ├── cblas_cdotc_sub.c
│ │ │ ├── cblas_cdotu_sub.c
│ │ │ ├── cblas_cgbmv.c
│ │ │ ├── cblas_cgemm.c
│ │ │ ├── cblas_cgemv.c
│ │ │ ├── cblas_cgerc.c
│ │ │ ├── cblas_cgeru.c
│ │ │ ├── cblas_chbmv.c
│ │ │ ├── cblas_chemm.c
│ │ │ ├── cblas_chemv.c
│ │ │ ├── cblas_cher.c
│ │ │ ├── cblas_cher2.c
│ │ │ ├── cblas_cher2k.c
│ │ │ ├── cblas_cherk.c
│ │ │ ├── cblas_chpmv.c
│ │ │ ├── cblas_chpr.c
│ │ │ ├── cblas_chpr2.c
│ │ │ ├── cblas_cscal.c
│ │ │ ├── cblas_csscal.c
│ │ │ ├── cblas_cswap.c
│ │ │ ├── cblas_csymm.c
│ │ │ ├── cblas_csyr2k.c
│ │ │ ├── cblas_csyrk.c
│ │ │ ├── cblas_ctbmv.c
│ │ │ ├── cblas_ctbsv.c
│ │ │ ├── cblas_ctpmv.c
│ │ │ ├── cblas_ctpsv.c
│ │ │ ├── cblas_ctrmm.c
│ │ │ ├── cblas_ctrmv.c
│ │ │ ├── cblas_ctrsm.c
│ │ │ ├── cblas_ctrsv.c
│ │ │ ├── cblas_dasum.c
│ │ │ ├── cblas_daxpy.c
│ │ │ ├── cblas_dcopy.c
│ │ │ ├── cblas_ddot.c
│ │ │ ├── cblas_dgbmv.c
│ │ │ ├── cblas_dgemm.c
│ │ │ ├── cblas_dgemv.c
│ │ │ ├── cblas_dger.c
│ │ │ ├── cblas_dnrm2.c
│ │ │ ├── cblas_drot.c
│ │ │ ├── cblas_drotg.c
│ │ │ ├── cblas_drotm.c
│ │ │ ├── cblas_drotmg.c
│ │ │ ├── cblas_dsbmv.c
│ │ │ ├── cblas_dscal.c
│ │ │ ├── cblas_dsdot.c
│ │ │ ├── cblas_dspmv.c
│ │ │ ├── cblas_dspr.c
│ │ │ ├── cblas_dspr2.c
│ │ │ ├── cblas_dswap.c
│ │ │ ├── cblas_dsymm.c
│ │ │ ├── cblas_dsymv.c
│ │ │ ├── cblas_dsyr.c
│ │ │ ├── cblas_dsyr2.c
│ │ │ ├── cblas_dsyr2k.c
│ │ │ ├── cblas_dsyrk.c
│ │ │ ├── cblas_dtbmv.c
│ │ │ ├── cblas_dtbsv.c
│ │ │ ├── cblas_dtpmv.c
│ │ │ ├── cblas_dtpsv.c
│ │ │ ├── cblas_dtrmm.c
│ │ │ ├── cblas_dtrmv.c
│ │ │ ├── cblas_dtrsm.c
│ │ │ ├── cblas_dtrsv.c
│ │ │ ├── cblas_dzasum.c
│ │ │ ├── cblas_dznrm2.c
│ │ │ ├── cblas_globals.c
│ │ │ ├── cblas_icamax.c
│ │ │ ├── cblas_idamax.c
│ │ │ ├── cblas_isamax.c
│ │ │ ├── cblas_izamax.c
│ │ │ ├── cblas_sasum.c
│ │ │ ├── cblas_saxpy.c
│ │ │ ├── cblas_scasum.c
│ │ │ ├── cblas_scnrm2.c
│ │ │ ├── cblas_scopy.c
│ │ │ ├── cblas_sdot.c
│ │ │ ├── cblas_sdsdot.c
│ │ │ ├── cblas_sgbmv.c
│ │ │ ├── cblas_sgemm.c
│ │ │ ├── cblas_sgemv.c
│ │ │ ├── cblas_sger.c
│ │ │ ├── cblas_snrm2.c
│ │ │ ├── cblas_srot.c
│ │ │ ├── cblas_srotg.c
│ │ │ ├── cblas_srotm.c
│ │ │ ├── cblas_srotmg.c
│ │ │ ├── cblas_ssbmv.c
│ │ │ ├── cblas_sscal.c
│ │ │ ├── cblas_sspmv.c
│ │ │ ├── cblas_sspr.c
│ │ │ ├── cblas_sspr2.c
│ │ │ ├── cblas_sswap.c
│ │ │ ├── cblas_ssymm.c
│ │ │ ├── cblas_ssymv.c
│ │ │ ├── cblas_ssyr.c
│ │ │ ├── cblas_ssyr2.c
│ │ │ ├── cblas_ssyr2k.c
│ │ │ ├── cblas_ssyrk.c
│ │ │ ├── cblas_stbmv.c
│ │ │ ├── cblas_stbsv.c
│ │ │ ├── cblas_stpmv.c
│ │ │ ├── cblas_stpsv.c
│ │ │ ├── cblas_strmm.c
│ │ │ ├── cblas_strmv.c
│ │ │ ├── cblas_strsm.c
│ │ │ ├── cblas_strsv.c
│ │ │ ├── cblas_xerbla.c
│ │ │ ├── cblas_zaxpy.c
│ │ │ ├── cblas_zcopy.c
│ │ │ ├── cblas_zdotc_sub.c
│ │ │ ├── cblas_zdotu_sub.c
│ │ │ ├── cblas_zdscal.c
│ │ │ ├── cblas_zgbmv.c
│ │ │ ├── cblas_zgemm.c
│ │ │ ├── cblas_zgemv.c
│ │ │ ├── cblas_zgerc.c
│ │ │ ├── cblas_zgeru.c
│ │ │ ├── cblas_zhbmv.c
│ │ │ ├── cblas_zhemm.c
│ │ │ ├── cblas_zhemv.c
│ │ │ ├── cblas_zher.c
│ │ │ ├── cblas_zher2.c
│ │ │ ├── cblas_zher2k.c
│ │ │ ├── cblas_zherk.c
│ │ │ ├── cblas_zhpmv.c
│ │ │ ├── cblas_zhpr.c
│ │ │ ├── cblas_zhpr2.c
│ │ │ ├── cblas_zscal.c
│ │ │ ├── cblas_zswap.c
│ │ │ ├── cblas_zsymm.c
│ │ │ ├── cblas_zsyr2k.c
│ │ │ ├── cblas_zsyrk.c
│ │ │ ├── cblas_ztbmv.c
│ │ │ ├── cblas_ztbsv.c
│ │ │ ├── cblas_ztpmv.c
│ │ │ ├── cblas_ztpsv.c
│ │ │ ├── cblas_ztrmm.c
│ │ │ ├── cblas_ztrmv.c
│ │ │ ├── cblas_ztrsm.c
│ │ │ ├── cblas_ztrsv.c
│ │ │ ├── cdotcsub.f
│ │ │ ├── cdotusub.f
│ │ │ ├── dasumsub.f
│ │ │ ├── ddotsub.f
│ │ │ ├── dnrm2sub.f
│ │ │ ├── dsdotsub.f
│ │ │ ├── dzasumsub.f
│ │ │ ├── dznrm2sub.f
│ │ │ ├── icamaxsub.f
│ │ │ ├── idamaxsub.f
│ │ │ ├── isamaxsub.f
│ │ │ ├── izamaxsub.f
│ │ │ ├── sasumsub.f
│ │ │ ├── scasumsub.f
│ │ │ ├── scnrm2sub.f
│ │ │ ├── sdotsub.f
│ │ │ ├── sdsdotsub.f
│ │ │ ├── snrm2sub.f
│ │ │ ├── xerbla.c
│ │ │ ├── zdotcsub.f
│ │ │ └── zdotusub.f
│ │ └── testing/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile
│ │ ├── auxiliary.c
│ │ ├── c_c2chke.c
│ │ ├── c_c3chke.c
│ │ ├── c_cblas1.c
│ │ ├── c_cblas2.c
│ │ ├── c_cblas3.c
│ │ ├── c_cblat1.f
│ │ ├── c_cblat2.f
│ │ ├── c_cblat3.f
│ │ ├── c_d2chke.c
│ │ ├── c_d3chke.c
│ │ ├── c_dblas1.c
│ │ ├── c_dblas2.c
│ │ ├── c_dblas3.c
│ │ ├── c_dblat1.f
│ │ ├── c_dblat2.f
│ │ ├── c_dblat3.f
│ │ ├── c_s2chke.c
│ │ ├── c_s3chke.c
│ │ ├── c_sblas1.c
│ │ ├── c_sblas2.c
│ │ ├── c_sblas3.c
│ │ ├── c_sblat1.f
│ │ ├── c_sblat2.f
│ │ ├── c_sblat3.f
│ │ ├── c_xerbla.c
│ │ ├── c_z2chke.c
│ │ ├── c_z3chke.c
│ │ ├── c_zblas1.c
│ │ ├── c_zblas2.c
│ │ ├── c_zblas3.c
│ │ ├── c_zblat1.f
│ │ ├── c_zblat2.f
│ │ ├── c_zblat3.f
│ │ ├── cin2
│ │ ├── cin3
│ │ ├── din2
│ │ ├── din3
│ │ ├── sin2
│ │ ├── sin3
│ │ ├── zin2
│ │ └── zin3
│ ├── CMAKE/
│ │ ├── CheckFortranTypeSizes.cmake
│ │ ├── CheckLAPACKCompilerFlags.cmake
│ │ ├── CheckTimeFunction.cmake
│ │ ├── FindGcov.cmake
│ │ ├── Findcodecov.cmake
│ │ ├── FortranMangling.cmake
│ │ ├── PreventInBuildInstalls.cmake
│ │ ├── PreventInSourceBuilds.cmake
│ │ ├── lapack-config-build.cmake.in
│ │ └── lapack-config-install.cmake.in
│ ├── CMakeLists.txt
│ ├── CTestConfig.cmake
│ ├── CTestCustom.cmake.in
│ ├── DOCS/
│ │ ├── Doxyfile
│ │ ├── Doxyfile_man
│ │ ├── DoxygenLayout.xml
│ │ ├── groups-usr.dox
│ │ ├── lawn81.tex
│ │ └── org2.ps
│ ├── INSTALL/
│ │ ├── CMakeLists.txt
│ │ ├── LAPACK_version.f
│ │ ├── Makefile
│ │ ├── dlamch.c
│ │ ├── dlamch.f
│ │ ├── dlamchf77.f
│ │ ├── dlamchtst.f
│ │ ├── droundup_lwork.c
│ │ ├── droundup_lwork.f
│ │ ├── dsecnd_EXT_ETIME.f
│ │ ├── dsecnd_EXT_ETIME_.f
│ │ ├── dsecnd_INT_CPU_TIME.f
│ │ ├── dsecnd_INT_ETIME.c
│ │ ├── dsecnd_INT_ETIME.f
│ │ ├── dsecnd_NONE.c
│ │ ├── dsecnd_NONE.f
│ │ ├── dsecndtst.f
│ │ ├── ilaver.c
│ │ ├── ilaver.f
│ │ ├── lsame.c
│ │ ├── lsame.f
│ │ ├── lsametst.c
│ │ ├── lsametst.f
│ │ ├── make.inc.ALPHA
│ │ ├── make.inc.HPPA
│ │ ├── make.inc.IRIX64
│ │ ├── make.inc.O2K
│ │ ├── make.inc.SGI5
│ │ ├── make.inc.SUN4
│ │ ├── make.inc.SUN4SOL2
│ │ ├── make.inc.XLF
│ │ ├── make.inc.gfortran
│ │ ├── make.inc.gfortran_debug
│ │ ├── make.inc.ifort
│ │ ├── make.inc.pgf95
│ │ ├── make.inc.pghpf
│ │ ├── second_EXT_ETIME.f
│ │ ├── second_EXT_ETIME_.f
│ │ ├── second_INT_CPU_TIME.f
│ │ ├── second_INT_ETIME.c
│ │ ├── second_INT_ETIME.f
│ │ ├── second_NONE.c
│ │ ├── second_NONE.f
│ │ ├── secondtst.c
│ │ ├── secondtst.f
│ │ ├── slamch.c
│ │ ├── slamch.f
│ │ ├── slamchf77.f
│ │ ├── slamchtst.f
│ │ ├── sroundup_lwork.c
│ │ ├── sroundup_lwork.f
│ │ └── tstiee.f
│ ├── LAPACKE/
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── Makefile
│ │ ├── README
│ │ ├── cmake/
│ │ │ ├── lapacke-config-build.cmake.in
│ │ │ ├── lapacke-config-install.cmake.in
│ │ │ └── lapacke-config-version.cmake.in
│ │ ├── example/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── example_DGELS_colmajor.c
│ │ │ ├── example_DGELS_rowmajor.c
│ │ │ ├── example_DGESV_colmajor.c
│ │ │ ├── example_DGESV_rowmajor.c
│ │ │ ├── example_user.c
│ │ │ ├── lapacke_example_aux.c
│ │ │ └── lapacke_example_aux.h
│ │ ├── include/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── lapack.h
│ │ │ ├── lapacke.h
│ │ │ ├── lapacke_config.h
│ │ │ ├── lapacke_mangling.h
│ │ │ ├── lapacke_mangling_with_flags.h.in
│ │ │ └── lapacke_utils.h
│ │ ├── lapacke.pc.in
│ │ ├── mangling/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Cintface.c
│ │ │ └── Fintface.f
│ │ ├── src/
│ │ │ ├── CMakeLists.txt
│ │ │ ├── Makefile
│ │ │ ├── lapacke_cbbcsd.c
│ │ │ ├── lapacke_cbbcsd_work.c
│ │ │ ├── lapacke_cbdsqr.c
│ │ │ ├── lapacke_cbdsqr_work.c
│ │ │ ├── lapacke_cgbbrd.c
│ │ │ ├── lapacke_cgbbrd_work.c
│ │ │ ├── lapacke_cgbcon.c
│ │ │ ├── lapacke_cgbcon_work.c
│ │ │ ├── lapacke_cgbequ.c
│ │ │ ├── lapacke_cgbequ_work.c
│ │ │ ├── lapacke_cgbequb.c
│ │ │ ├── lapacke_cgbequb_work.c
│ │ │ ├── lapacke_cgbrfs.c
│ │ │ ├── lapacke_cgbrfs_work.c
│ │ │ ├── lapacke_cgbrfsx.c
│ │ │ ├── lapacke_cgbrfsx_work.c
│ │ │ ├── lapacke_cgbsv.c
│ │ │ ├── lapacke_cgbsv_work.c
│ │ │ ├── lapacke_cgbsvx.c
│ │ │ ├── lapacke_cgbsvx_work.c
│ │ │ ├── lapacke_cgbsvxx.c
│ │ │ ├── lapacke_cgbsvxx_work.c
│ │ │ ├── lapacke_cgbtrf.c
│ │ │ ├── lapacke_cgbtrf_work.c
│ │ │ ├── lapacke_cgbtrs.c
│ │ │ ├── lapacke_cgbtrs_work.c
│ │ │ ├── lapacke_cgebak.c
│ │ │ ├── lapacke_cgebak_work.c
│ │ │ ├── lapacke_cgebal.c
│ │ │ ├── lapacke_cgebal_work.c
│ │ │ ├── lapacke_cgebrd.c
│ │ │ ├── lapacke_cgebrd_work.c
│ │ │ ├── lapacke_cgecon.c
│ │ │ ├── lapacke_cgecon_work.c
│ │ │ ├── lapacke_cgedmd.c
│ │ │ ├── lapacke_cgedmd_work.c
│ │ │ ├── lapacke_cgedmdq.c
│ │ │ ├── lapacke_cgedmdq_work.c
│ │ │ ├── lapacke_cgeequ.c
│ │ │ ├── lapacke_cgeequ_work.c
│ │ │ ├── lapacke_cgeequb.c
│ │ │ ├── lapacke_cgeequb_work.c
│ │ │ ├── lapacke_cgees.c
│ │ │ ├── lapacke_cgees_work.c
│ │ │ ├── lapacke_cgeesx.c
│ │ │ ├── lapacke_cgeesx_work.c
│ │ │ ├── lapacke_cgeev.c
│ │ │ ├── lapacke_cgeev_work.c
│ │ │ ├── lapacke_cgeevx.c
│ │ │ ├── lapacke_cgeevx_work.c
│ │ │ ├── lapacke_cgehrd.c
│ │ │ ├── lapacke_cgehrd_work.c
│ │ │ ├── lapacke_cgejsv.c
│ │ │ ├── lapacke_cgejsv_work.c
│ │ │ ├── lapacke_cgelq.c
│ │ │ ├── lapacke_cgelq2.c
│ │ │ ├── lapacke_cgelq2_work.c
│ │ │ ├── lapacke_cgelq_work.c
│ │ │ ├── lapacke_cgelqf.c
│ │ │ ├── lapacke_cgelqf_work.c
│ │ │ ├── lapacke_cgels.c
│ │ │ ├── lapacke_cgels_work.c
│ │ │ ├── lapacke_cgelsd.c
│ │ │ ├── lapacke_cgelsd_work.c
│ │ │ ├── lapacke_cgelss.c
│ │ │ ├── lapacke_cgelss_work.c
│ │ │ ├── lapacke_cgelsy.c
│ │ │ ├── lapacke_cgelsy_work.c
│ │ │ ├── lapacke_cgemlq.c
│ │ │ ├── lapacke_cgemlq_work.c
│ │ │ ├── lapacke_cgemqr.c
│ │ │ ├── lapacke_cgemqr_work.c
│ │ │ ├── lapacke_cgemqrt.c
│ │ │ ├── lapacke_cgemqrt_work.c
│ │ │ ├── lapacke_cgeqlf.c
│ │ │ ├── lapacke_cgeqlf_work.c
│ │ │ ├── lapacke_cgeqp3.c
│ │ │ ├── lapacke_cgeqp3_work.c
│ │ │ ├── lapacke_cgeqpf.c
│ │ │ ├── lapacke_cgeqpf_work.c
│ │ │ ├── lapacke_cgeqr.c
│ │ │ ├── lapacke_cgeqr2.c
│ │ │ ├── lapacke_cgeqr2_work.c
│ │ │ ├── lapacke_cgeqr_work.c
│ │ │ ├── lapacke_cgeqrf.c
│ │ │ ├── lapacke_cgeqrf_work.c
│ │ │ ├── lapacke_cgeqrfp.c
│ │ │ ├── lapacke_cgeqrfp_work.c
│ │ │ ├── lapacke_cgeqrt.c
│ │ │ ├── lapacke_cgeqrt2.c
│ │ │ ├── lapacke_cgeqrt2_work.c
│ │ │ ├── lapacke_cgeqrt3.c
│ │ │ ├── lapacke_cgeqrt3_work.c
│ │ │ ├── lapacke_cgeqrt_work.c
│ │ │ ├── lapacke_cgerfs.c
│ │ │ ├── lapacke_cgerfs_work.c
│ │ │ ├── lapacke_cgerfsx.c
│ │ │ ├── lapacke_cgerfsx_work.c
│ │ │ ├── lapacke_cgerqf.c
│ │ │ ├── lapacke_cgerqf_work.c
│ │ │ ├── lapacke_cgesdd.c
│ │ │ ├── lapacke_cgesdd_work.c
│ │ │ ├── lapacke_cgesv.c
│ │ │ ├── lapacke_cgesv_work.c
│ │ │ ├── lapacke_cgesvd.c
│ │ │ ├── lapacke_cgesvd_work.c
│ │ │ ├── lapacke_cgesvdq.c
│ │ │ ├── lapacke_cgesvdq_work.c
│ │ │ ├── lapacke_cgesvdx.c
│ │ │ ├── lapacke_cgesvdx_work.c
│ │ │ ├── lapacke_cgesvj.c
│ │ │ ├── lapacke_cgesvj_work.c
│ │ │ ├── lapacke_cgesvx.c
│ │ │ ├── lapacke_cgesvx_work.c
│ │ │ ├── lapacke_cgesvxx.c
│ │ │ ├── lapacke_cgesvxx_work.c
│ │ │ ├── lapacke_cgetf2.c
│ │ │ ├── lapacke_cgetf2_work.c
│ │ │ ├── lapacke_cgetrf.c
│ │ │ ├── lapacke_cgetrf2.c
│ │ │ ├── lapacke_cgetrf2_work.c
│ │ │ ├── lapacke_cgetrf_work.c
│ │ │ ├── lapacke_cgetri.c
│ │ │ ├── lapacke_cgetri_work.c
│ │ │ ├── lapacke_cgetrs.c
│ │ │ ├── lapacke_cgetrs_work.c
│ │ │ ├── lapacke_cgetsls.c
│ │ │ ├── lapacke_cgetsls_work.c
│ │ │ ├── lapacke_cgetsqrhrt.c
│ │ │ ├── lapacke_cgetsqrhrt_work.c
│ │ │ ├── lapacke_cggbak.c
│ │ │ ├── lapacke_cggbak_work.c
│ │ │ ├── lapacke_cggbal.c
│ │ │ ├── lapacke_cggbal_work.c
│ │ │ ├── lapacke_cgges.c
│ │ │ ├── lapacke_cgges3.c
│ │ │ ├── lapacke_cgges3_work.c
│ │ │ ├── lapacke_cgges_work.c
│ │ │ ├── lapacke_cggesx.c
│ │ │ ├── lapacke_cggesx_work.c
│ │ │ ├── lapacke_cggev.c
│ │ │ ├── lapacke_cggev3.c
│ │ │ ├── lapacke_cggev3_work.c
│ │ │ ├── lapacke_cggev_work.c
│ │ │ ├── lapacke_cggevx.c
│ │ │ ├── lapacke_cggevx_work.c
│ │ │ ├── lapacke_cggglm.c
│ │ │ ├── lapacke_cggglm_work.c
│ │ │ ├── lapacke_cgghd3.c
│ │ │ ├── lapacke_cgghd3_work.c
│ │ │ ├── lapacke_cgghrd.c
│ │ │ ├── lapacke_cgghrd_work.c
│ │ │ ├── lapacke_cgglse.c
│ │ │ ├── lapacke_cgglse_work.c
│ │ │ ├── lapacke_cggqrf.c
│ │ │ ├── lapacke_cggqrf_work.c
│ │ │ ├── lapacke_cggrqf.c
│ │ │ ├── lapacke_cggrqf_work.c
│ │ │ ├── lapacke_cggsvd.c
│ │ │ ├── lapacke_cggsvd3.c
│ │ │ ├── lapacke_cggsvd3_work.c
│ │ │ ├── lapacke_cggsvd_work.c
│ │ │ ├── lapacke_cggsvp.c
│ │ │ ├── lapacke_cggsvp3.c
│ │ │ ├── lapacke_cggsvp3_work.c
│ │ │ ├── lapacke_cggsvp_work.c
│ │ │ ├── lapacke_cgtcon.c
│ │ │ ├── lapacke_cgtcon_work.c
│ │ │ ├── lapacke_cgtrfs.c
│ │ │ ├── lapacke_cgtrfs_work.c
│ │ │ ├── lapacke_cgtsv.c
│ │ │ ├── lapacke_cgtsv_work.c
│ │ │ ├── lapacke_cgtsvx.c
│ │ │ ├── lapacke_cgtsvx_work.c
│ │ │ ├── lapacke_cgttrf.c
│ │ │ ├── lapacke_cgttrf_work.c
│ │ │ ├── lapacke_cgttrs.c
│ │ │ ├── lapacke_cgttrs_work.c
│ │ │ ├── lapacke_chbev.c
│ │ │ ├── lapacke_chbev_2stage.c
│ │ │ ├── lapacke_chbev_2stage_work.c
│ │ │ ├── lapacke_chbev_work.c
│ │ │ ├── lapacke_chbevd.c
│ │ │ ├── lapacke_chbevd_2stage.c
│ │ │ ├── lapacke_chbevd_2stage_work.c
│ │ │ ├── lapacke_chbevd_work.c
│ │ │ ├── lapacke_chbevx.c
│ │ │ ├── lapacke_chbevx_2stage.c
│ │ │ ├── lapacke_chbevx_2stage_work.c
│ │ │ ├── lapacke_chbevx_work.c
│ │ │ ├── lapacke_chbgst.c
│ │ │ ├── lapacke_chbgst_work.c
│ │ │ ├── lapacke_chbgv.c
│ │ │ ├── lapacke_chbgv_work.c
│ │ │ ├── lapacke_chbgvd.c
│ │ │ ├── lapacke_chbgvd_work.c
│ │ │ ├── lapacke_chbgvx.c
│ │ │ ├── lapacke_chbgvx_work.c
│ │ │ ├── lapacke_chbtrd.c
│ │ │ ├── lapacke_chbtrd_work.c
│ │ │ ├── lapacke_checon.c
│ │ │ ├── lapacke_checon_3.c
│ │ │ ├── lapacke_checon_3_work.c
│ │ │ ├── lapacke_checon_work.c
│ │ │ ├── lapacke_cheequb.c
│ │ │ ├── lapacke_cheequb_work.c
│ │ │ ├── lapacke_cheev.c
│ │ │ ├── lapacke_cheev_2stage.c
│ │ │ ├── lapacke_cheev_2stage_work.c
│ │ │ ├── lapacke_cheev_work.c
│ │ │ ├── lapacke_cheevd.c
│ │ │ ├── lapacke_cheevd_2stage.c
│ │ │ ├── lapacke_cheevd_2stage_work.c
│ │ │ ├── lapacke_cheevd_work.c
│ │ │ ├── lapacke_cheevr.c
│ │ │ ├── lapacke_cheevr_2stage.c
│ │ │ ├── lapacke_cheevr_2stage_work.c
│ │ │ ├── lapacke_cheevr_work.c
│ │ │ ├── lapacke_cheevx.c
│ │ │ ├── lapacke_cheevx_2stage.c
│ │ │ ├── lapacke_cheevx_2stage_work.c
│ │ │ ├── lapacke_cheevx_work.c
│ │ │ ├── lapacke_chegst.c
│ │ │ ├── lapacke_chegst_work.c
│ │ │ ├── lapacke_chegv.c
│ │ │ ├── lapacke_chegv_2stage.c
│ │ │ ├── lapacke_chegv_2stage_work.c
│ │ │ ├── lapacke_chegv_work.c
│ │ │ ├── lapacke_chegvd.c
│ │ │ ├── lapacke_chegvd_work.c
│ │ │ ├── lapacke_chegvx.c
│ │ │ ├── lapacke_chegvx_work.c
│ │ │ ├── lapacke_cherfs.c
│ │ │ ├── lapacke_cherfs_work.c
│ │ │ ├── lapacke_cherfsx.c
│ │ │ ├── lapacke_cherfsx_work.c
│ │ │ ├── lapacke_chesv.c
│ │ │ ├── lapacke_chesv_aa.c
│ │ │ ├── lapacke_chesv_aa_2stage.c
│ │ │ ├── lapacke_chesv_aa_2stage_work.c
│ │ │ ├── lapacke_chesv_aa_work.c
│ │ │ ├── lapacke_chesv_rk.c
│ │ │ ├── lapacke_chesv_rk_work.c
│ │ │ ├── lapacke_chesv_work.c
│ │ │ ├── lapacke_chesvx.c
│ │ │ ├── lapacke_chesvx_work.c
│ │ │ ├── lapacke_chesvxx.c
│ │ │ ├── lapacke_chesvxx_work.c
│ │ │ ├── lapacke_cheswapr.c
│ │ │ ├── lapacke_cheswapr_work.c
│ │ │ ├── lapacke_chetrd.c
│ │ │ ├── lapacke_chetrd_work.c
│ │ │ ├── lapacke_chetrf.c
│ │ │ ├── lapacke_chetrf_aa.c
│ │ │ ├── lapacke_chetrf_aa_2stage.c
│ │ │ ├── lapacke_chetrf_aa_2stage_work.c
│ │ │ ├── lapacke_chetrf_aa_work.c
│ │ │ ├── lapacke_chetrf_rk.c
│ │ │ ├── lapacke_chetrf_rk_work.c
│ │ │ ├── lapacke_chetrf_rook.c
│ │ │ ├── lapacke_chetrf_rook_work.c
│ │ │ ├── lapacke_chetrf_work.c
│ │ │ ├── lapacke_chetri.c
│ │ │ ├── lapacke_chetri2.c
│ │ │ ├── lapacke_chetri2_work.c
│ │ │ ├── lapacke_chetri2x.c
│ │ │ ├── lapacke_chetri2x_work.c
│ │ │ ├── lapacke_chetri_3.c
│ │ │ ├── lapacke_chetri_3_work.c
│ │ │ ├── lapacke_chetri_work.c
│ │ │ ├── lapacke_chetrs.c
│ │ │ ├── lapacke_chetrs2.c
│ │ │ ├── lapacke_chetrs2_work.c
│ │ │ ├── lapacke_chetrs_3.c
│ │ │ ├── lapacke_chetrs_3_work.c
│ │ │ ├── lapacke_chetrs_aa.c
│ │ │ ├── lapacke_chetrs_aa_2stage.c
│ │ │ ├── lapacke_chetrs_aa_2stage_work.c
│ │ │ ├── lapacke_chetrs_aa_work.c
│ │ │ ├── lapacke_chetrs_rook.c
│ │ │ ├── lapacke_chetrs_rook_work.c
│ │ │ ├── lapacke_chetrs_work.c
│ │ │ ├── lapacke_chfrk.c
│ │ │ ├── lapacke_chfrk_work.c
│ │ │ ├── lapacke_chgeqz.c
│ │ │ ├── lapacke_chgeqz_work.c
│ │ │ ├── lapacke_chpcon.c
│ │ │ ├── lapacke_chpcon_work.c
│ │ │ ├── lapacke_chpev.c
│ │ │ ├── lapacke_chpev_work.c
│ │ │ ├── lapacke_chpevd.c
│ │ │ ├── lapacke_chpevd_work.c
│ │ │ ├── lapacke_chpevx.c
│ │ │ ├── lapacke_chpevx_work.c
│ │ │ ├── lapacke_chpgst.c
│ │ │ ├── lapacke_chpgst_work.c
│ │ │ ├── lapacke_chpgv.c
│ │ │ ├── lapacke_chpgv_work.c
│ │ │ ├── lapacke_chpgvd.c
│ │ │ ├── lapacke_chpgvd_work.c
│ │ │ ├── lapacke_chpgvx.c
│ │ │ ├── lapacke_chpgvx_work.c
│ │ │ ├── lapacke_chprfs.c
│ │ │ ├── lapacke_chprfs_work.c
│ │ │ ├── lapacke_chpsv.c
│ │ │ ├── lapacke_chpsv_work.c
│ │ │ ├── lapacke_chpsvx.c
│ │ │ ├── lapacke_chpsvx_work.c
│ │ │ ├── lapacke_chptrd.c
│ │ │ ├── lapacke_chptrd_work.c
│ │ │ ├── lapacke_chptrf.c
│ │ │ ├── lapacke_chptrf_work.c
│ │ │ ├── lapacke_chptri.c
│ │ │ ├── lapacke_chptri_work.c
│ │ │ ├── lapacke_chptrs.c
│ │ │ ├── lapacke_chptrs_work.c
│ │ │ ├── lapacke_chsein.c
│ │ │ ├── lapacke_chsein_work.c
│ │ │ ├── lapacke_chseqr.c
│ │ │ ├── lapacke_chseqr_work.c
│ │ │ ├── lapacke_clacgv.c
│ │ │ ├── lapacke_clacgv_work.c
│ │ │ ├── lapacke_clacn2.c
│ │ │ ├── lapacke_clacn2_work.c
│ │ │ ├── lapacke_clacp2.c
│ │ │ ├── lapacke_clacp2_work.c
│ │ │ ├── lapacke_clacpy.c
│ │ │ ├── lapacke_clacpy_work.c
│ │ │ ├── lapacke_clacrm.c
│ │ │ ├── lapacke_clacrm_work.c
│ │ │ ├── lapacke_clag2z.c
│ │ │ ├── lapacke_clag2z_work.c
│ │ │ ├── lapacke_clagge.c
│ │ │ ├── lapacke_clagge_work.c
│ │ │ ├── lapacke_claghe.c
│ │ │ ├── lapacke_claghe_work.c
│ │ │ ├── lapacke_clagsy.c
│ │ │ ├── lapacke_clagsy_work.c
│ │ │ ├── lapacke_clangb.c
│ │ │ ├── lapacke_clangb_work.c
│ │ │ ├── lapacke_clange.c
│ │ │ ├── lapacke_clange_work.c
│ │ │ ├── lapacke_clanhe.c
│ │ │ ├── lapacke_clanhe_work.c
│ │ │ ├── lapacke_clansy.c
│ │ │ ├── lapacke_clansy_work.c
│ │ │ ├── lapacke_clantr.c
│ │ │ ├── lapacke_clantr_work.c
│ │ │ ├── lapacke_clapmr.c
│ │ │ ├── lapacke_clapmr_work.c
│ │ │ ├── lapacke_clapmt.c
│ │ │ ├── lapacke_clapmt_work.c
│ │ │ ├── lapacke_clarcm.c
│ │ │ ├── lapacke_clarcm_work.c
│ │ │ ├── lapacke_clarfb.c
│ │ │ ├── lapacke_clarfb_work.c
│ │ │ ├── lapacke_clarfg.c
│ │ │ ├── lapacke_clarfg_work.c
│ │ │ ├── lapacke_clarft.c
│ │ │ ├── lapacke_clarft_work.c
│ │ │ ├── lapacke_clarfx.c
│ │ │ ├── lapacke_clarfx_work.c
│ │ │ ├── lapacke_clarnv.c
│ │ │ ├── lapacke_clarnv_work.c
│ │ │ ├── lapacke_clascl.c
│ │ │ ├── lapacke_clascl_work.c
│ │ │ ├── lapacke_claset.c
│ │ │ ├── lapacke_claset_work.c
│ │ │ ├── lapacke_classq.c
│ │ │ ├── lapacke_classq_work.c
│ │ │ ├── lapacke_claswp.c
│ │ │ ├── lapacke_claswp_work.c
│ │ │ ├── lapacke_clatms.c
│ │ │ ├── lapacke_clatms_work.c
│ │ │ ├── lapacke_clauum.c
│ │ │ ├── lapacke_clauum_work.c
│ │ │ ├── lapacke_cpbcon.c
│ │ │ ├── lapacke_cpbcon_work.c
│ │ │ ├── lapacke_cpbequ.c
│ │ │ ├── lapacke_cpbequ_work.c
│ │ │ ├── lapacke_cpbrfs.c
│ │ │ ├── lapacke_cpbrfs_work.c
│ │ │ ├── lapacke_cpbstf.c
│ │ │ ├── lapacke_cpbstf_work.c
│ │ │ ├── lapacke_cpbsv.c
│ │ │ ├── lapacke_cpbsv_work.c
│ │ │ ├── lapacke_cpbsvx.c
│ │ │ ├── lapacke_cpbsvx_work.c
│ │ │ ├── lapacke_cpbtrf.c
│ │ │ ├── lapacke_cpbtrf_work.c
│ │ │ ├── lapacke_cpbtrs.c
│ │ │ ├── lapacke_cpbtrs_work.c
│ │ │ ├── lapacke_cpftrf.c
│ │ │ ├── lapacke_cpftrf_work.c
│ │ │ ├── lapacke_cpftri.c
│ │ │ ├── lapacke_cpftri_work.c
│ │ │ ├── lapacke_cpftrs.c
│ │ │ ├── lapacke_cpftrs_work.c
│ │ │ ├── lapacke_cpocon.c
│ │ │ ├── lapacke_cpocon_work.c
│ │ │ ├── lapacke_cpoequ.c
│ │ │ ├── lapacke_cpoequ_work.c
│ │ │ ├── lapacke_cpoequb.c
│ │ │ ├── lapacke_cpoequb_work.c
│ │ │ ├── lapacke_cporfs.c
│ │ │ ├── lapacke_cporfs_work.c
│ │ │ ├── lapacke_cporfsx.c
│ │ │ ├── lapacke_cporfsx_work.c
│ │ │ ├── lapacke_cposv.c
│ │ │ ├── lapacke_cposv_work.c
│ │ │ ├── lapacke_cposvx.c
│ │ │ ├── lapacke_cposvx_work.c
│ │ │ ├── lapacke_cposvxx.c
│ │ │ ├── lapacke_cposvxx_work.c
│ │ │ ├── lapacke_cpotrf.c
│ │ │ ├── lapacke_cpotrf2.c
│ │ │ ├── lapacke_cpotrf2_work.c
│ │ │ ├── lapacke_cpotrf_work.c
│ │ │ ├── lapacke_cpotri.c
│ │ │ ├── lapacke_cpotri_work.c
│ │ │ ├── lapacke_cpotrs.c
│ │ │ ├── lapacke_cpotrs_work.c
│ │ │ ├── lapacke_cppcon.c
│ │ │ ├── lapacke_cppcon_work.c
│ │ │ ├── lapacke_cppequ.c
│ │ │ ├── lapacke_cppequ_work.c
│ │ │ ├── lapacke_cpprfs.c
│ │ │ ├── lapacke_cpprfs_work.c
│ │ │ ├── lapacke_cppsv.c
│ │ │ ├── lapacke_cppsv_work.c
│ │ │ ├── lapacke_cppsvx.c
│ │ │ ├── lapacke_cppsvx_work.c
│ │ │ ├── lapacke_cpptrf.c
│ │ │ ├── lapacke_cpptrf_work.c
│ │ │ ├── lapacke_cpptri.c
│ │ │ ├── lapacke_cpptri_work.c
│ │ │ ├── lapacke_cpptrs.c
│ │ │ ├── lapacke_cpptrs_work.c
│ │ │ ├── lapacke_cpstrf.c
│ │ │ ├── lapacke_cpstrf_work.c
│ │ │ ├── lapacke_cptcon.c
│ │ │ ├── lapacke_cptcon_work.c
│ │ │ ├── lapacke_cpteqr.c
│ │ │ ├── lapacke_cpteqr_work.c
│ │ │ ├── lapacke_cptrfs.c
│ │ │ ├── lapacke_cptrfs_work.c
│ │ │ ├── lapacke_cptsv.c
│ │ │ ├── lapacke_cptsv_work.c
│ │ │ ├── lapacke_cptsvx.c
│ │ │ ├── lapacke_cptsvx_work.c
│ │ │ ├── lapacke_cpttrf.c
│ │ │ ├── lapacke_cpttrf_work.c
│ │ │ ├── lapacke_cpttrs.c
│ │ │ ├── lapacke_cpttrs_work.c
│ │ │ ├── lapacke_cspcon.c
│ │ │ ├── lapacke_cspcon_work.c
│ │ │ ├── lapacke_csprfs.c
│ │ │ ├── lapacke_csprfs_work.c
│ │ │ ├── lapacke_cspsv.c
│ │ │ ├── lapacke_cspsv_work.c
│ │ │ ├── lapacke_cspsvx.c
│ │ │ ├── lapacke_cspsvx_work.c
│ │ │ ├── lapacke_csptrf.c
│ │ │ ├── lapacke_csptrf_work.c
│ │ │ ├── lapacke_csptri.c
│ │ │ ├── lapacke_csptri_work.c
│ │ │ ├── lapacke_csptrs.c
│ │ │ ├── lapacke_csptrs_work.c
│ │ │ ├── lapacke_cstedc.c
│ │ │ ├── lapacke_cstedc_work.c
│ │ │ ├── lapacke_cstegr.c
│ │ │ ├── lapacke_cstegr_work.c
│ │ │ ├── lapacke_cstein.c
│ │ │ ├── lapacke_cstein_work.c
│ │ │ ├── lapacke_cstemr.c
│ │ │ ├── lapacke_cstemr_work.c
│ │ │ ├── lapacke_csteqr.c
│ │ │ ├── lapacke_csteqr_work.c
│ │ │ ├── lapacke_csycon.c
│ │ │ ├── lapacke_csycon_3.c
│ │ │ ├── lapacke_csycon_3_work.c
│ │ │ ├── lapacke_csycon_work.c
│ │ │ ├── lapacke_csyconv.c
│ │ │ ├── lapacke_csyconv_work.c
│ │ │ ├── lapacke_csyequb.c
│ │ │ ├── lapacke_csyequb_work.c
│ │ │ ├── lapacke_csyr.c
│ │ │ ├── lapacke_csyr_work.c
│ │ │ ├── lapacke_csyrfs.c
│ │ │ ├── lapacke_csyrfs_work.c
│ │ │ ├── lapacke_csyrfsx.c
│ │ │ ├── lapacke_csyrfsx_work.c
│ │ │ ├── lapacke_csysv.c
│ │ │ ├── lapacke_csysv_aa.c
│ │ │ ├── lapacke_csysv_aa_2stage.c
│ │ │ ├── lapacke_csysv_aa_2stage_work.c
│ │ │ ├── lapacke_csysv_aa_work.c
│ │ │ ├── lapacke_csysv_rk.c
│ │ │ ├── lapacke_csysv_rk_work.c
│ │ │ ├── lapacke_csysv_rook.c
│ │ │ ├── lapacke_csysv_rook_work.c
│ │ │ ├── lapacke_csysv_work.c
│ │ │ ├── lapacke_csysvx.c
│ │ │ ├── lapacke_csysvx_work.c
│ │ │ ├── lapacke_csysvxx.c
│ │ │ ├── lapacke_csysvxx_work.c
│ │ │ ├── lapacke_csyswapr.c
│ │ │ ├── lapacke_csyswapr_work.c
│ │ │ ├── lapacke_csytrf.c
│ │ │ ├── lapacke_csytrf_aa.c
│ │ │ ├── lapacke_csytrf_aa_2stage.c
│ │ │ ├── lapacke_csytrf_aa_2stage_work.c
│ │ │ ├── lapacke_csytrf_aa_work.c
│ │ │ ├── lapacke_csytrf_rk.c
│ │ │ ├── lapacke_csytrf_rk_work.c
│ │ │ ├── lapacke_csytrf_rook.c
│ │ │ ├── lapacke_csytrf_rook_work.c
│ │ │ ├── lapacke_csytrf_work.c
│ │ │ ├── lapacke_csytri.c
│ │ │ ├── lapacke_csytri2.c
│ │ │ ├── lapacke_csytri2_work.c
│ │ │ ├── lapacke_csytri2x.c
│ │ │ ├── lapacke_csytri2x_work.c
│ │ │ ├── lapacke_csytri_3.c
│ │ │ ├── lapacke_csytri_3_work.c
│ │ │ ├── lapacke_csytri_work.c
│ │ │ ├── lapacke_csytrs.c
│ │ │ ├── lapacke_csytrs2.c
│ │ │ ├── lapacke_csytrs2_work.c
│ │ │ ├── lapacke_csytrs_3.c
│ │ │ ├── lapacke_csytrs_3_work.c
│ │ │ ├── lapacke_csytrs_aa.c
│ │ │ ├── lapacke_csytrs_aa_2stage.c
│ │ │ ├── lapacke_csytrs_aa_2stage_work.c
│ │ │ ├── lapacke_csytrs_aa_work.c
│ │ │ ├── lapacke_csytrs_rook.c
│ │ │ ├── lapacke_csytrs_rook_work.c
│ │ │ ├── lapacke_csytrs_work.c
│ │ │ ├── lapacke_ctbcon.c
│ │ │ ├── lapacke_ctbcon_work.c
│ │ │ ├── lapacke_ctbrfs.c
│ │ │ ├── lapacke_ctbrfs_work.c
│ │ │ ├── lapacke_ctbtrs.c
│ │ │ ├── lapacke_ctbtrs_work.c
│ │ │ ├── lapacke_ctfsm.c
│ │ │ ├── lapacke_ctfsm_work.c
│ │ │ ├── lapacke_ctftri.c
│ │ │ ├── lapacke_ctftri_work.c
│ │ │ ├── lapacke_ctfttp.c
│ │ │ ├── lapacke_ctfttp_work.c
│ │ │ ├── lapacke_ctfttr.c
│ │ │ ├── lapacke_ctfttr_work.c
│ │ │ ├── lapacke_ctgevc.c
│ │ │ ├── lapacke_ctgevc_work.c
│ │ │ ├── lapacke_ctgexc.c
│ │ │ ├── lapacke_ctgexc_work.c
│ │ │ ├── lapacke_ctgsen.c
│ │ │ ├── lapacke_ctgsen_work.c
│ │ │ ├── lapacke_ctgsja.c
│ │ │ ├── lapacke_ctgsja_work.c
│ │ │ ├── lapacke_ctgsna.c
│ │ │ ├── lapacke_ctgsna_work.c
│ │ │ ├── lapacke_ctgsyl.c
│ │ │ ├── lapacke_ctgsyl_work.c
│ │ │ ├── lapacke_ctpcon.c
│ │ │ ├── lapacke_ctpcon_work.c
│ │ │ ├── lapacke_ctpmqrt.c
│ │ │ ├── lapacke_ctpmqrt_work.c
│ │ │ ├── lapacke_ctpqrt.c
│ │ │ ├── lapacke_ctpqrt2.c
│ │ │ ├── lapacke_ctpqrt2_work.c
│ │ │ ├── lapacke_ctpqrt_work.c
│ │ │ ├── lapacke_ctprfb.c
│ │ │ ├── lapacke_ctprfb_work.c
│ │ │ ├── lapacke_ctprfs.c
│ │ │ ├── lapacke_ctprfs_work.c
│ │ │ ├── lapacke_ctptri.c
│ │ │ ├── lapacke_ctptri_work.c
│ │ │ ├── lapacke_ctptrs.c
│ │ │ ├── lapacke_ctptrs_work.c
│ │ │ ├── lapacke_ctpttf.c
│ │ │ ├── lapacke_ctpttf_work.c
│ │ │ ├── lapacke_ctpttr.c
│ │ │ ├── lapacke_ctpttr_work.c
│ │ │ ├── lapacke_ctrcon.c
│ │ │ ├── lapacke_ctrcon_work.c
│ │ │ ├── lapacke_ctrevc.c
│ │ │ ├── lapacke_ctrevc_work.c
│ │ │ ├── lapacke_ctrexc.c
│ │ │ ├── lapacke_ctrexc_work.c
│ │ │ ├── lapacke_ctrrfs.c
│ │ │ ├── lapacke_ctrrfs_work.c
│ │ │ ├── lapacke_ctrsen.c
│ │ │ ├── lapacke_ctrsen_work.c
│ │ │ ├── lapacke_ctrsna.c
│ │ │ ├── lapacke_ctrsna_work.c
│ │ │ ├── lapacke_ctrsyl.c
│ │ │ ├── lapacke_ctrsyl3.c
│ │ │ ├── lapacke_ctrsyl3_work.c
│ │ │ ├── lapacke_ctrsyl_work.c
│ │ │ ├── lapacke_ctrtri.c
│ │ │ ├── lapacke_ctrtri_work.c
│ │ │ ├── lapacke_ctrtrs.c
│ │ │ ├── lapacke_ctrtrs_work.c
│ │ │ ├── lapacke_ctrttf.c
│ │ │ ├── lapacke_ctrttf_work.c
│ │ │ ├── lapacke_ctrttp.c
│ │ │ ├── lapacke_ctrttp_work.c
│ │ │ ├── lapacke_ctzrzf.c
│ │ │ ├── lapacke_ctzrzf_work.c
│ │ │ ├── lapacke_cunbdb.c
│ │ │ ├── lapacke_cunbdb_work.c
│ │ │ ├── lapacke_cuncsd.c
│ │ │ ├── lapacke_cuncsd2by1.c
│ │ │ ├── lapacke_cuncsd2by1_work.c
│ │ │ ├── lapacke_cuncsd_work.c
│ │ │ ├── lapacke_cungbr.c
│ │ │ ├── lapacke_cungbr_work.c
│ │ │ ├── lapacke_cunghr.c
│ │ │ ├── lapacke_cunghr_work.c
│ │ │ ├── lapacke_cunglq.c
│ │ │ ├── lapacke_cunglq_work.c
│ │ │ ├── lapacke_cungql.c
│ │ │ ├── lapacke_cungql_work.c
│ │ │ ├── lapacke_cungqr.c
│ │ │ ├── lapacke_cungqr_work.c
│ │ │ ├── lapacke_cungrq.c
│ │ │ ├── lapacke_cungrq_work.c
│ │ │ ├── lapacke_cungtr.c
│ │ │ ├── lapacke_cungtr_work.c
│ │ │ ├── lapacke_cungtsqr_row.c
│ │ │ ├── lapacke_cungtsqr_row_work.c
│ │ │ ├── lapacke_cunhr_col.c
│ │ │ ├── lapacke_cunhr_col_work.c
│ │ │ ├── lapacke_cunmbr.c
│ │ │ ├── lapacke_cunmbr_work.c
│ │ │ ├── lapacke_cunmhr.c
│ │ │ ├── lapacke_cunmhr_work.c
│ │ │ ├── lapacke_cunmlq.c
│ │ │ ├── lapacke_cunmlq_work.c
│ │ │ ├── lapacke_cunmql.c
│ │ │ ├── lapacke_cunmql_work.c
│ │ │ ├── lapacke_cunmqr.c
│ │ │ ├── lapacke_cunmqr_work.c
│ │ │ ├── lapacke_cunmrq.c
│ │ │ ├── lapacke_cunmrq_work.c
│ │ │ ├── lapacke_cunmrz.c
│ │ │ ├── lapacke_cunmrz_work.c
│ │ │ ├── lapacke_cunmtr.c
│ │ │ ├── lapacke_cunmtr_work.c
│ │ │ ├── lapacke_cupgtr.c
│ │ │ ├── lapacke_cupgtr_work.c
│ │ │ ├── lapacke_cupmtr.c
│ │ │ ├── lapacke_cupmtr_work.c
│ │ │ ├── lapacke_dbbcsd.c
│ │ │ ├── lapacke_dbbcsd_work.c
│ │ │ ├── lapacke_dbdsdc.c
│ │ │ ├── lapacke_dbdsdc_work.c
│ │ │ ├── lapacke_dbdsqr.c
│ │ │ ├── lapacke_dbdsqr_work.c
│ │ │ ├── lapacke_dbdsvdx.c
│ │ │ ├── lapacke_dbdsvdx_work.c
│ │ │ ├── lapacke_ddisna.c
│ │ │ ├── lapacke_ddisna_work.c
│ │ │ ├── lapacke_dgbbrd.c
│ │ │ ├── lapacke_dgbbrd_work.c
│ │ │ ├── lapacke_dgbcon.c
│ │ │ ├── lapacke_dgbcon_work.c
│ │ │ ├── lapacke_dgbequ.c
│ │ │ ├── lapacke_dgbequ_work.c
│ │ │ ├── lapacke_dgbequb.c
│ │ │ ├── lapacke_dgbequb_work.c
│ │ │ ├── lapacke_dgbrfs.c
│ │ │ ├── lapacke_dgbrfs_work.c
│ │ │ ├── lapacke_dgbrfsx.c
│ │ │ ├── lapacke_dgbrfsx_work.c
│ │ │ ├── lapacke_dgbsv.c
│ │ │ ├── lapacke_dgbsv_work.c
│ │ │ ├── lapacke_dgbsvx.c
│ │ │ ├── lapacke_dgbsvx_work.c
│ │ │ ├── lapacke_dgbsvxx.c
│ │ │ ├── lapacke_dgbsvxx_work.c
│ │ │ ├── lapacke_dgbtrf.c
│ │ │ ├── lapacke_dgbtrf_work.c
│ │ │ ├── lapacke_dgbtrs.c
│ │ │ ├── lapacke_dgbtrs_work.c
│ │ │ ├── lapacke_dgebak.c
│ │ │ ├── lapacke_dgebak_work.c
│ │ │ ├── lapacke_dgebal.c
│ │ │ ├── lapacke_dgebal_work.c
│ │ │ ├── lapacke_dgebrd.c
│ │ │ ├── lapacke_dgebrd_work.c
│ │ │ ├── lapacke_dgecon.c
│ │ │ ├── lapacke_dgecon_work.c
│ │ │ ├── lapacke_dgedmd.c
│ │ │ ├── lapacke_dgedmd_work.c
│ │ │ ├── lapacke_dgedmdq.c
│ │ │ ├── lapacke_dgedmdq_work.c
│ │ │ ├── lapacke_dgeequ.c
│ │ │ ├── lapacke_dgeequ_work.c
│ │ │ ├── lapacke_dgeequb.c
│ │ │ ├── lapacke_dgeequb_work.c
│ │ │ ├── lapacke_dgees.c
│ │ │ ├── lapacke_dgees_work.c
│ │ │ ├── lapacke_dgeesx.c
│ │ │ ├── lapacke_dgeesx_work.c
│ │ │ ├── lapacke_dgeev.c
│ │ │ ├── lapacke_dgeev_work.c
│ │ │ ├── lapacke_dgeevx.c
│ │ │ ├── lapacke_dgeevx_work.c
│ │ │ ├── lapacke_dgehrd.c
│ │ │ ├── lapacke_dgehrd_work.c
│ │ │ ├── lapacke_dgejsv.c
│ │ │ ├── lapacke_dgejsv_work.c
│ │ │ ├── lapacke_dgelq.c
│ │ │ ├── lapacke_dgelq2.c
│ │ │ ├── lapacke_dgelq2_work.c
│ │ │ ├── lapacke_dgelq_work.c
│ │ │ ├── lapacke_dgelqf.c
│ │ │ ├── lapacke_dgelqf_work.c
│ │ │ ├── lapacke_dgels.c
│ │ │ ├── lapacke_dgels_work.c
│ │ │ ├── lapacke_dgelsd.c
│ │ │ ├── lapacke_dgelsd_work.c
│ │ │ ├── lapacke_dgelss.c
│ │ │ ├── lapacke_dgelss_work.c
│ │ │ ├── lapacke_dgelsy.c
│ │ │ ├── lapacke_dgelsy_work.c
│ │ │ ├── lapacke_dgemlq.c
│ │ │ ├── lapacke_dgemlq_work.c
│ │ │ ├── lapacke_dgemqr.c
│ │ │ ├── lapacke_dgemqr_work.c
│ │ │ ├── lapacke_dgemqrt.c
│ │ │ ├── lapacke_dgemqrt_work.c
│ │ │ ├── lapacke_dgeqlf.c
│ │ │ ├── lapacke_dgeqlf_work.c
│ │ │ ├── lapacke_dgeqp3.c
│ │ │ ├── lapacke_dgeqp3_work.c
│ │ │ ├── lapacke_dgeqpf.c
│ │ │ ├── lapacke_dgeqpf_work.c
│ │ │ ├── lapacke_dgeqr.c
│ │ │ ├── lapacke_dgeqr2.c
│ │ │ ├── lapacke_dgeqr2_work.c
│ │ │ ├── lapacke_dgeqr_work.c
│ │ │ ├── lapacke_dgeqrf.c
│ │ │ ├── lapacke_dgeqrf_work.c
│ │ │ ├── lapacke_dgeqrfp.c
│ │ │ ├── lapacke_dgeqrfp_work.c
│ │ │ ├── lapacke_dgeqrt.c
│ │ │ ├── lapacke_dgeqrt2.c
│ │ │ ├── lapacke_dgeqrt2_work.c
│ │ │ ├── lapacke_dgeqrt3.c
│ │ │ ├── lapacke_dgeqrt3_work.c
│ │ │ ├── lapacke_dgeqrt_work.c
│ │ │ ├── lapacke_dgerfs.c
│ │ │ ├── lapacke_dgerfs_work.c
│ │ │ ├── lapacke_dgerfsx.c
│ │ │ ├── lapacke_dgerfsx_work.c
│ │ │ ├── lapacke_dgerqf.c
│ │ │ ├── lapacke_dgerqf_work.c
│ │ │ ├── lapacke_dgesdd.c
│ │ │ ├── lapacke_dgesdd_work.c
│ │ │ ├── lapacke_dgesv.c
│ │ │ ├── lapacke_dgesv_work.c
│ │ │ ├── lapacke_dgesvd.c
│ │ │ ├── lapacke_dgesvd_work.c
│ │ │ ├── lapacke_dgesvdq.c
│ │ │ ├── lapacke_dgesvdq_work.c
│ │ │ ├── lapacke_dgesvdx.c
│ │ │ ├── lapacke_dgesvdx_work.c
│ │ │ ├── lapacke_dgesvj.c
│ │ │ ├── lapacke_dgesvj_work.c
│ │ │ ├── lapacke_dgesvx.c
│ │ │ ├── lapacke_dgesvx_work.c
│ │ │ ├── lapacke_dgesvxx.c
│ │ │ ├── lapacke_dgesvxx_work.c
│ │ │ ├── lapacke_dgetf2.c
│ │ │ ├── lapacke_dgetf2_work.c
│ │ │ ├── lapacke_dgetrf.c
│ │ │ ├── lapacke_dgetrf2.c
│ │ │ ├── lapacke_dgetrf2_work.c
│ │ │ ├── lapacke_dgetrf_work.c
│ │ │ ├── lapacke_dgetri.c
│ │ │ ├── lapacke_dgetri_work.c
│ │ │ ├── lapacke_dgetrs.c
│ │ │ ├── lapacke_dgetrs_work.c
│ │ │ ├── lapacke_dgetsls.c
│ │ │ ├── lapacke_dgetsls_work.c
│ │ │ ├── lapacke_dgetsqrhrt.c
│ │ │ ├── lapacke_dgetsqrhrt_work.c
│ │ │ ├── lapacke_dggbak.c
│ │ │ ├── lapacke_dggbak_work.c
│ │ │ ├── lapacke_dggbal.c
│ │ │ ├── lapacke_dggbal_work.c
│ │ │ ├── lapacke_dgges.c
│ │ │ ├── lapacke_dgges3.c
│ │ │ ├── lapacke_dgges3_work.c
│ │ │ ├── lapacke_dgges_work.c
│ │ │ ├── lapacke_dggesx.c
│ │ │ ├── lapacke_dggesx_work.c
│ │ │ ├── lapacke_dggev.c
│ │ │ ├── lapacke_dggev3.c
│ │ │ ├── lapacke_dggev3_work.c
│ │ │ ├── lapacke_dggev_work.c
│ │ │ ├── lapacke_dggevx.c
│ │ │ ├── lapacke_dggevx_work.c
│ │ │ ├── lapacke_dggglm.c
│ │ │ ├── lapacke_dggglm_work.c
│ │ │ ├── lapacke_dgghd3.c
│ │ │ ├── lapacke_dgghd3_work.c
│ │ │ ├── lapacke_dgghrd.c
│ │ │ ├── lapacke_dgghrd_work.c
│ │ │ ├── lapacke_dgglse.c
│ │ │ ├── lapacke_dgglse_work.c
│ │ │ ├── lapacke_dggqrf.c
│ │ │ ├── lapacke_dggqrf_work.c
│ │ │ ├── lapacke_dggrqf.c
│ │ │ ├── lapacke_dggrqf_work.c
│ │ │ ├── lapacke_dggsvd.c
│ │ │ ├── lapacke_dggsvd3.c
│ │ │ ├── lapacke_dggsvd3_work.c
│ │ │ ├── lapacke_dggsvd_work.c
│ │ │ ├── lapacke_dggsvp.c
│ │ │ ├── lapacke_dggsvp3.c
│ │ │ ├── lapacke_dggsvp3_work.c
│ │ │ ├── lapacke_dggsvp_work.c
│ │ │ ├── lapacke_dgtcon.c
│ │ │ ├── lapacke_dgtcon_work.c
│ │ │ ├── lapacke_dgtrfs.c
│ │ │ ├── lapacke_dgtrfs_work.c
│ │ │ ├── lapacke_dgtsv.c
│ │ │ ├── lapacke_dgtsv_work.c
│ │ │ ├── lapacke_dgtsvx.c
│ │ │ ├── lapacke_dgtsvx_work.c
│ │ │ ├── lapacke_dgttrf.c
│ │ │ ├── lapacke_dgttrf_work.c
│ │ │ ├── lapacke_dgttrs.c
│ │ │ ├── lapacke_dgttrs_work.c
│ │ │ ├── lapacke_dhgeqz.c
│ │ │ ├── lapacke_dhgeqz_work.c
│ │ │ ├── lapacke_dhsein.c
│ │ │ ├── lapacke_dhsein_work.c
│ │ │ ├── lapacke_dhseqr.c
│ │ │ ├── lapacke_dhseqr_work.c
│ │ │ ├── lapacke_dlacn2.c
│ │ │ ├── lapacke_dlacn2_work.c
│ │ │ ├── lapacke_dlacpy.c
│ │ │ ├── lapacke_dlacpy_work.c
│ │ │ ├── lapacke_dlag2s.c
│ │ │ ├── lapacke_dlag2s_work.c
│ │ │ ├── lapacke_dlagge.c
│ │ │ ├── lapacke_dlagge_work.c
│ │ │ ├── lapacke_dlagsy.c
│ │ │ ├── lapacke_dlagsy_work.c
│ │ │ ├── lapacke_dlamch.c
│ │ │ ├── lapacke_dlamch_work.c
│ │ │ ├── lapacke_dlangb.c
│ │ │ ├── lapacke_dlangb_work.c
│ │ │ ├── lapacke_dlange.c
│ │ │ ├── lapacke_dlange_work.c
│ │ │ ├── lapacke_dlansy.c
│ │ │ ├── lapacke_dlansy_work.c
│ │ │ ├── lapacke_dlantr.c
│ │ │ ├── lapacke_dlantr_work.c
│ │ │ ├── lapacke_dlapmr.c
│ │ │ ├── lapacke_dlapmr_work.c
│ │ │ ├── lapacke_dlapmt.c
│ │ │ ├── lapacke_dlapmt_work.c
│ │ │ ├── lapacke_dlapy2.c
│ │ │ ├── lapacke_dlapy2_work.c
│ │ │ ├── lapacke_dlapy3.c
│ │ │ ├── lapacke_dlapy3_work.c
│ │ │ ├── lapacke_dlarfb.c
│ │ │ ├── lapacke_dlarfb_work.c
│ │ │ ├── lapacke_dlarfg.c
│ │ │ ├── lapacke_dlarfg_work.c
│ │ │ ├── lapacke_dlarft.c
│ │ │ ├── lapacke_dlarft_work.c
│ │ │ ├── lapacke_dlarfx.c
│ │ │ ├── lapacke_dlarfx_work.c
│ │ │ ├── lapacke_dlarnv.c
│ │ │ ├── lapacke_dlarnv_work.c
│ │ │ ├── lapacke_dlartgp.c
│ │ │ ├── lapacke_dlartgp_work.c
│ │ │ ├── lapacke_dlartgs.c
│ │ │ ├── lapacke_dlartgs_work.c
│ │ │ ├── lapacke_dlascl.c
│ │ │ ├── lapacke_dlascl_work.c
│ │ │ ├── lapacke_dlaset.c
│ │ │ ├── lapacke_dlaset_work.c
│ │ │ ├── lapacke_dlasrt.c
│ │ │ ├── lapacke_dlasrt_work.c
│ │ │ ├── lapacke_dlassq.c
│ │ │ ├── lapacke_dlassq_work.c
│ │ │ ├── lapacke_dlaswp.c
│ │ │ ├── lapacke_dlaswp_work.c
│ │ │ ├── lapacke_dlatms.c
│ │ │ ├── lapacke_dlatms_work.c
│ │ │ ├── lapacke_dlauum.c
│ │ │ ├── lapacke_dlauum_work.c
│ │ │ ├── lapacke_dopgtr.c
│ │ │ ├── lapacke_dopgtr_work.c
│ │ │ ├── lapacke_dopmtr.c
│ │ │ ├── lapacke_dopmtr_work.c
│ │ │ ├── lapacke_dorbdb.c
│ │ │ ├── lapacke_dorbdb_work.c
│ │ │ ├── lapacke_dorcsd.c
│ │ │ ├── lapacke_dorcsd2by1.c
│ │ │ ├── lapacke_dorcsd2by1_work.c
│ │ │ ├── lapacke_dorcsd_work.c
│ │ │ ├── lapacke_dorgbr.c
│ │ │ ├── lapacke_dorgbr_work.c
│ │ │ ├── lapacke_dorghr.c
│ │ │ ├── lapacke_dorghr_work.c
│ │ │ ├── lapacke_dorglq.c
│ │ │ ├── lapacke_dorglq_work.c
│ │ │ ├── lapacke_dorgql.c
│ │ │ ├── lapacke_dorgql_work.c
│ │ │ ├── lapacke_dorgqr.c
│ │ │ ├── lapacke_dorgqr_work.c
│ │ │ ├── lapacke_dorgrq.c
│ │ │ ├── lapacke_dorgrq_work.c
│ │ │ ├── lapacke_dorgtr.c
│ │ │ ├── lapacke_dorgtr_work.c
│ │ │ ├── lapacke_dorgtsqr_row.c
│ │ │ ├── lapacke_dorgtsqr_row_work.c
│ │ │ ├── lapacke_dorhr_col.c
│ │ │ ├── lapacke_dorhr_col_work.c
│ │ │ ├── lapacke_dormbr.c
│ │ │ ├── lapacke_dormbr_work.c
│ │ │ ├── lapacke_dormhr.c
│ │ │ ├── lapacke_dormhr_work.c
│ │ │ ├── lapacke_dormlq.c
│ │ │ ├── lapacke_dormlq_work.c
│ │ │ ├── lapacke_dormql.c
│ │ │ ├── lapacke_dormql_work.c
│ │ │ ├── lapacke_dormqr.c
│ │ │ ├── lapacke_dormqr_work.c
│ │ │ ├── lapacke_dormrq.c
│ │ │ ├── lapacke_dormrq_work.c
│ │ │ ├── lapacke_dormrz.c
│ │ │ ├── lapacke_dormrz_work.c
│ │ │ ├── lapacke_dormtr.c
│ │ │ ├── lapacke_dormtr_work.c
│ │ │ ├── lapacke_dpbcon.c
│ │ │ ├── lapacke_dpbcon_work.c
│ │ │ ├── lapacke_dpbequ.c
│ │ │ ├── lapacke_dpbequ_work.c
│ │ │ ├── lapacke_dpbrfs.c
│ │ │ ├── lapacke_dpbrfs_work.c
│ │ │ ├── lapacke_dpbstf.c
│ │ │ ├── lapacke_dpbstf_work.c
│ │ │ ├── lapacke_dpbsv.c
│ │ │ ├── lapacke_dpbsv_work.c
│ │ │ ├── lapacke_dpbsvx.c
│ │ │ ├── lapacke_dpbsvx_work.c
│ │ │ ├── lapacke_dpbtrf.c
│ │ │ ├── lapacke_dpbtrf_work.c
│ │ │ ├── lapacke_dpbtrs.c
│ │ │ ├── lapacke_dpbtrs_work.c
│ │ │ ├── lapacke_dpftrf.c
│ │ │ ├── lapacke_dpftrf_work.c
│ │ │ ├── lapacke_dpftri.c
│ │ │ ├── lapacke_dpftri_work.c
│ │ │ ├── lapacke_dpftrs.c
│ │ │ ├── lapacke_dpftrs_work.c
│ │ │ ├── lapacke_dpocon.c
│ │ │ ├── lapacke_dpocon_work.c
│ │ │ ├── lapacke_dpoequ.c
│ │ │ ├── lapacke_dpoequ_work.c
│ │ │ ├── lapacke_dpoequb.c
│ │ │ ├── lapacke_dpoequb_work.c
│ │ │ ├── lapacke_dporfs.c
│ │ │ ├── lapacke_dporfs_work.c
│ │ │ ├── lapacke_dporfsx.c
│ │ │ ├── lapacke_dporfsx_work.c
│ │ │ ├── lapacke_dposv.c
│ │ │ ├── lapacke_dposv_work.c
│ │ │ ├── lapacke_dposvx.c
│ │ │ ├── lapacke_dposvx_work.c
│ │ │ ├── lapacke_dposvxx.c
│ │ │ ├── lapacke_dposvxx_work.c
│ │ │ ├── lapacke_dpotrf.c
│ │ │ ├── lapacke_dpotrf2.c
│ │ │ ├── lapacke_dpotrf2_work.c
│ │ │ ├── lapacke_dpotrf_work.c
│ │ │ ├── lapacke_dpotri.c
│ │ │ ├── lapacke_dpotri_work.c
│ │ │ ├── lapacke_dpotrs.c
│ │ │ ├── lapacke_dpotrs_work.c
│ │ │ ├── lapacke_dppcon.c
│ │ │ ├── lapacke_dppcon_work.c
│ │ │ ├── lapacke_dppequ.c
│ │ │ ├── lapacke_dppequ_work.c
│ │ │ ├── lapacke_dpprfs.c
│ │ │ ├── lapacke_dpprfs_work.c
│ │ │ ├── lapacke_dppsv.c
│ │ │ ├── lapacke_dppsv_work.c
│ │ │ ├── lapacke_dppsvx.c
│ │ │ ├── lapacke_dppsvx_work.c
│ │ │ ├── lapacke_dpptrf.c
│ │ │ ├── lapacke_dpptrf_work.c
│ │ │ ├── lapacke_dpptri.c
│ │ │ ├── lapacke_dpptri_work.c
│ │ │ ├── lapacke_dpptrs.c
│ │ │ ├── lapacke_dpptrs_work.c
│ │ │ ├── lapacke_dpstrf.c
│ │ │ ├── lapacke_dpstrf_work.c
│ │ │ ├── lapacke_dptcon.c
│ │ │ ├── lapacke_dptcon_work.c
│ │ │ ├── lapacke_dpteqr.c
│ │ │ ├── lapacke_dpteqr_work.c
│ │ │ ├── lapacke_dptrfs.c
│ │ │ ├── lapacke_dptrfs_work.c
│ │ │ ├── lapacke_dptsv.c
│ │ │ ├── lapacke_dptsv_work.c
│ │ │ ├── lapacke_dptsvx.c
│ │ │ ├── lapacke_dptsvx_work.c
│ │ │ ├── lapacke_dpttrf.c
│ │ │ ├── lapacke_dpttrf_work.c
│ │ │ ├── lapacke_dpttrs.c
│ │ │ ├── lapacke_dpttrs_work.c
│ │ │ ├── lapacke_dsbev.c
│ │ │ ├── lapacke_dsbev_2stage.c
│ │ │ ├── lapacke_dsbev_2stage_work.c
│ │ │ ├── lapacke_dsbev_work.c
│ │ │ ├── lapacke_dsbevd.c
│ │ │ ├── lapacke_dsbevd_2stage.c
│ │ │ ├── lapacke_dsbevd_2stage_work.c
│ │ │ ├── lapacke_dsbevd_work.c
│ │ │ ├── lapacke_dsbevx.c
│ │ │ ├── lapacke_dsbevx_2stage.c
│ │ │ ├── lapacke_dsbevx_2stage_work.c
│ │ │ ├── lapacke_dsbevx_work.c
│ │ │ ├── lapacke_dsbgst.c
│ │ │ ├── lapacke_dsbgst_work.c
│ │ │ ├── lapacke_dsbgv.c
│ │ │ ├── lapacke_dsbgv_work.c
│ │ │ ├── lapacke_dsbgvd.c
│ │ │ ├── lapacke_dsbgvd_work.c
│ │ │ ├── lapacke_dsbgvx.c
│ │ │ ├── lapacke_dsbgvx_work.c
│ │ │ ├── lapacke_dsbtrd.c
│ │ │ ├── lapacke_dsbtrd_work.c
│ │ │ ├── lapacke_dsfrk.c
│ │ │ ├── lapacke_dsfrk_work.c
│ │ │ ├── lapacke_dsgesv.c
│ │ │ ├── lapacke_dsgesv_work.c
│ │ │ ├── lapacke_dspcon.c
│ │ │ ├── lapacke_dspcon_work.c
│ │ │ ├── lapacke_dspev.c
│ │ │ ├── lapacke_dspev_work.c
│ │ │ ├── lapacke_dspevd.c
│ │ │ ├── lapacke_dspevd_work.c
│ │ │ ├── lapacke_dspevx.c
│ │ │ ├── lapacke_dspevx_work.c
│ │ │ ├── lapacke_dspgst.c
│ │ │ ├── lapacke_dspgst_work.c
│ │ │ ├── lapacke_dspgv.c
│ │ │ ├── lapacke_dspgv_work.c
│ │ │ ├── lapacke_dspgvd.c
│ │ │ ├── lapacke_dspgvd_work.c
│ │ │ ├── lapacke_dspgvx.c
│ │ │ ├── lapacke_dspgvx_work.c
│ │ │ ├── lapacke_dsposv.c
│ │ │ ├── lapacke_dsposv_work.c
│ │ │ ├── lapacke_dsprfs.c
│ │ │ ├── lapacke_dsprfs_work.c
│ │ │ ├── lapacke_dspsv.c
│ │ │ ├── lapacke_dspsv_work.c
│ │ │ ├── lapacke_dspsvx.c
│ │ │ ├── lapacke_dspsvx_work.c
│ │ │ ├── lapacke_dsptrd.c
│ │ │ ├── lapacke_dsptrd_work.c
│ │ │ ├── lapacke_dsptrf.c
│ │ │ ├── lapacke_dsptrf_work.c
│ │ │ ├── lapacke_dsptri.c
│ │ │ ├── lapacke_dsptri_work.c
│ │ │ ├── lapacke_dsptrs.c
│ │ │ ├── lapacke_dsptrs_work.c
│ │ │ ├── lapacke_dstebz.c
│ │ │ ├── lapacke_dstebz_work.c
│ │ │ ├── lapacke_dstedc.c
│ │ │ ├── lapacke_dstedc_work.c
│ │ │ ├── lapacke_dstegr.c
│ │ │ ├── lapacke_dstegr_work.c
│ │ │ ├── lapacke_dstein.c
│ │ │ ├── lapacke_dstein_work.c
│ │ │ ├── lapacke_dstemr.c
│ │ │ ├── lapacke_dstemr_work.c
│ │ │ ├── lapacke_dsteqr.c
│ │ │ ├── lapacke_dsteqr_work.c
│ │ │ ├── lapacke_dsterf.c
│ │ │ ├── lapacke_dsterf_work.c
│ │ │ ├── lapacke_dstev.c
│ │ │ ├── lapacke_dstev_work.c
│ │ │ ├── lapacke_dstevd.c
│ │ │ ├── lapacke_dstevd_work.c
│ │ │ ├── lapacke_dstevr.c
│ │ │ ├── lapacke_dstevr_work.c
│ │ │ ├── lapacke_dstevx.c
│ │ │ ├── lapacke_dstevx_work.c
│ │ │ ├── lapacke_dsycon.c
│ │ │ ├── lapacke_dsycon_3.c
│ │ │ ├── lapacke_dsycon_3_work.c
│ │ │ ├── lapacke_dsycon_work.c
│ │ │ ├── lapacke_dsyconv.c
│ │ │ ├── lapacke_dsyconv_work.c
│ │ │ ├── lapacke_dsyequb.c
│ │ │ ├── lapacke_dsyequb_work.c
│ │ │ ├── lapacke_dsyev.c
│ │ │ ├── lapacke_dsyev_2stage.c
│ │ │ ├── lapacke_dsyev_2stage_work.c
│ │ │ ├── lapacke_dsyev_work.c
│ │ │ ├── lapacke_dsyevd.c
│ │ │ ├── lapacke_dsyevd_2stage.c
│ │ │ ├── lapacke_dsyevd_2stage_work.c
│ │ │ ├── lapacke_dsyevd_work.c
│ │ │ ├── lapacke_dsyevr.c
│ │ │ ├── lapacke_dsyevr_2stage.c
│ │ │ ├── lapacke_dsyevr_2stage_work.c
│ │ │ ├── lapacke_dsyevr_work.c
│ │ │ ├── lapacke_dsyevx.c
│ │ │ ├── lapacke_dsyevx_2stage.c
│ │ │ ├── lapacke_dsyevx_2stage_work.c
│ │ │ ├── lapacke_dsyevx_work.c
│ │ │ ├── lapacke_dsygst.c
│ │ │ ├── lapacke_dsygst_work.c
│ │ │ ├── lapacke_dsygv.c
│ │ │ ├── lapacke_dsygv_2stage.c
│ │ │ ├── lapacke_dsygv_2stage_work.c
│ │ │ ├── lapacke_dsygv_work.c
│ │ │ ├── lapacke_dsygvd.c
│ │ │ ├── lapacke_dsygvd_work.c
│ │ │ ├── lapacke_dsygvx.c
│ │ │ ├── lapacke_dsygvx_work.c
│ │ │ ├── lapacke_dsyrfs.c
│ │ │ ├── lapacke_dsyrfs_work.c
│ │ │ ├── lapacke_dsyrfsx.c
│ │ │ ├── lapacke_dsyrfsx_work.c
│ │ │ ├── lapacke_dsysv.c
│ │ │ ├── lapacke_dsysv_aa.c
│ │ │ ├── lapacke_dsysv_aa_2stage.c
│ │ │ ├── lapacke_dsysv_aa_2stage_work.c
│ │ │ ├── lapacke_dsysv_aa_work.c
│ │ │ ├── lapacke_dsysv_rk.c
│ │ │ ├── lapacke_dsysv_rk_work.c
│ │ │ ├── lapacke_dsysv_rook.c
│ │ │ ├── lapacke_dsysv_rook_work.c
│ │ │ ├── lapacke_dsysv_work.c
│ │ │ ├── lapacke_dsysvx.c
│ │ │ ├── lapacke_dsysvx_work.c
│ │ │ ├── lapacke_dsysvxx.c
│ │ │ ├── lapacke_dsysvxx_work.c
│ │ │ ├── lapacke_dsyswapr.c
│ │ │ ├── lapacke_dsyswapr_work.c
│ │ │ ├── lapacke_dsytrd.c
│ │ │ ├── lapacke_dsytrd_work.c
│ │ │ ├── lapacke_dsytrf.c
│ │ │ ├── lapacke_dsytrf_aa.c
│ │ │ ├── lapacke_dsytrf_aa_2stage.c
│ │ │ ├── lapacke_dsytrf_aa_2stage_work.c
│ │ │ ├── lapacke_dsytrf_aa_work.c
│ │ │ ├── lapacke_dsytrf_rk.c
│ │ │ ├── lapacke_dsytrf_rk_work.c
│ │ │ ├── lapacke_dsytrf_rook.c
│ │ │ ├── lapacke_dsytrf_rook_work.c
│ │ │ ├── lapacke_dsytrf_work.c
│ │ │ ├── lapacke_dsytri.c
│ │ │ ├── lapacke_dsytri2.c
│ │ │ ├── lapacke_dsytri2_work.c
│ │ │ ├── lapacke_dsytri2x.c
│ │ │ ├── lapacke_dsytri2x_work.c
│ │ │ ├── lapacke_dsytri_3.c
│ │ │ ├── lapacke_dsytri_3_work.c
│ │ │ ├── lapacke_dsytri_work.c
│ │ │ ├── lapacke_dsytrs.c
│ │ │ ├── lapacke_dsytrs2.c
│ │ │ ├── lapacke_dsytrs2_work.c
│ │ │ ├── lapacke_dsytrs_3.c
│ │ │ ├── lapacke_dsytrs_3_work.c
│ │ │ ├── lapacke_dsytrs_aa.c
│ │ │ ├── lapacke_dsytrs_aa_2stage.c
│ │ │ ├── lapacke_dsytrs_aa_2stage_work.c
│ │ │ ├── lapacke_dsytrs_aa_work.c
│ │ │ ├── lapacke_dsytrs_rook.c
│ │ │ ├── lapacke_dsytrs_rook_work.c
│ │ │ ├── lapacke_dsytrs_work.c
│ │ │ ├── lapacke_dtbcon.c
│ │ │ ├── lapacke_dtbcon_work.c
│ │ │ ├── lapacke_dtbrfs.c
│ │ │ ├── lapacke_dtbrfs_work.c
│ │ │ ├── lapacke_dtbtrs.c
│ │ │ ├── lapacke_dtbtrs_work.c
│ │ │ ├── lapacke_dtfsm.c
│ │ │ ├── lapacke_dtfsm_work.c
│ │ │ ├── lapacke_dtftri.c
│ │ │ ├── lapacke_dtftri_work.c
│ │ │ ├── lapacke_dtfttp.c
│ │ │ ├── lapacke_dtfttp_work.c
│ │ │ ├── lapacke_dtfttr.c
│ │ │ ├── lapacke_dtfttr_work.c
│ │ │ ├── lapacke_dtgevc.c
│ │ │ ├── lapacke_dtgevc_work.c
│ │ │ ├── lapacke_dtgexc.c
│ │ │ ├── lapacke_dtgexc_work.c
│ │ │ ├── lapacke_dtgsen.c
│ │ │ ├── lapacke_dtgsen_work.c
│ │ │ ├── lapacke_dtgsja.c
│ │ │ ├── lapacke_dtgsja_work.c
│ │ │ ├── lapacke_dtgsna.c
│ │ │ ├── lapacke_dtgsna_work.c
│ │ │ ├── lapacke_dtgsyl.c
│ │ │ ├── lapacke_dtgsyl_work.c
│ │ │ ├── lapacke_dtpcon.c
│ │ │ ├── lapacke_dtpcon_work.c
│ │ │ ├── lapacke_dtpmqrt.c
│ │ │ ├── lapacke_dtpmqrt_work.c
│ │ │ ├── lapacke_dtpqrt.c
│ │ │ ├── lapacke_dtpqrt2.c
│ │ │ ├── lapacke_dtpqrt2_work.c
│ │ │ ├── lapacke_dtpqrt_work.c
│ │ │ ├── lapacke_dtprfb.c
│ │ │ ├── lapacke_dtprfb_work.c
│ │ │ ├── lapacke_dtprfs.c
│ │ │ ├── lapacke_dtprfs_work.c
│ │ │ ├── lapacke_dtptri.c
│ │ │ ├── lapacke_dtptri_work.c
│ │ │ ├── lapacke_dtptrs.c
│ │ │ ├── lapacke_dtptrs_work.c
│ │ │ ├── lapacke_dtpttf.c
│ │ │ ├── lapacke_dtpttf_work.c
│ │ │ ├── lapacke_dtpttr.c
│ │ │ ├── lapacke_dtpttr_work.c
│ │ │ ├── lapacke_dtrcon.c
│ │ │ ├── lapacke_dtrcon_work.c
│ │ │ ├── lapacke_dtrevc.c
│ │ │ ├── lapacke_dtrevc_work.c
│ │ │ ├── lapacke_dtrexc.c
│ │ │ ├── lapacke_dtrexc_work.c
│ │ │ ├── lapacke_dtrrfs.c
│ │ │ ├── lapacke_dtrrfs_work.c
│ │ │ ├── lapacke_dtrsen.c
│ │ │ ├── lapacke_dtrsen_work.c
│ │ │ ├── lapacke_dtrsna.c
│ │ │ ├── lapacke_dtrsna_work.c
│ │ │ ├── lapacke_dtrsyl.c
│ │ │ ├── lapacke_dtrsyl3.c
│ │ │ ├── lapacke_dtrsyl3_work.c
│ │ │ ├── lapacke_dtrsyl_work.c
│ │ │ ├── lapacke_dtrtri.c
│ │ │ ├── lapacke_dtrtri_work.c
│ │ │ ├── lapacke_dtrtrs.c
│ │ │ ├── lapacke_dtrtrs_work.c
│ │ │ ├── lapacke_dtrttf.c
│ │ │ ├── lapacke_dtrttf_work.c
│ │ │ ├── lapacke_dtrttp.c
│ │ │ ├── lapacke_dtrttp_work.c
│ │ │ ├── lapacke_dtzrzf.c
│ │ │ ├── lapacke_dtzrzf_work.c
│ │ │ ├── lapacke_ilaver.c
│ │ │ ├── lapacke_nancheck.c
│ │ │ ├── lapacke_sbbcsd.c
│ │ │ ├── lapacke_sbbcsd_work.c
│ │ │ ├── lapacke_sbdsdc.c
│ │ │ ├── lapacke_sbdsdc_work.c
│ │ │ ├── lapacke_sbdsqr.c
│ │ │ ├── lapacke_sbdsqr_work.c
│ │ │ ├── lapacke_sbdsvdx.c
│ │ │ ├── lapacke_sbdsvdx_work.c
│ │ │ ├── lapacke_sdisna.c
│ │ │ ├── lapacke_sdisna_work.c
│ │ │ ├── lapacke_sgbbrd.c
│ │ │ ├── lapacke_sgbbrd_work.c
│ │ │ ├── lapacke_sgbcon.c
│ │ │ ├── lapacke_sgbcon_work.c
│ │ │ ├── lapacke_sgbequ.c
│ │ │ ├── lapacke_sgbequ_work.c
│ │ │ ├── lapacke_sgbequb.c
│ │ │ ├── lapacke_sgbequb_work.c
│ │ │ ├── lapacke_sgbrfs.c
│ │ │ ├── lapacke_sgbrfs_work.c
│ │ │ ├── lapacke_sgbrfsx.c
│ │ │ ├── lapacke_sgbrfsx_work.c
│ │ │ ├── lapacke_sgbsv.c
│ │ │ ├── lapacke_sgbsv_work.c
│ │ │ ├── lapacke_sgbsvx.c
│ │ │ ├── lapacke_sgbsvx_work.c
│ │ │ ├── lapacke_sgbsvxx.c
│ │ │ ├── lapacke_sgbsvxx_work.c
│ │ │ ├── lapacke_sgbtrf.c
│ │ │ ├── lapacke_sgbtrf_work.c
│ │ │ ├── lapacke_sgbtrs.c
│ │ │ ├── lapacke_sgbtrs_work.c
│ │ │ ├── lapacke_sgebak.c
│ │ │ ├── lapacke_sgebak_work.c
│ │ │ ├── lapacke_sgebal.c
│ │ │ ├── lapacke_sgebal_work.c
│ │ │ ├── lapacke_sgebrd.c
│ │ │ ├── lapacke_sgebrd_work.c
│ │ │ ├── lapacke_sgecon.c
│ │ │ ├── lapacke_sgecon_work.c
│ │ │ ├── lapacke_sgedmd.c
│ │ │ ├── lapacke_sgedmd_work.c
│ │ │ ├── lapacke_sgedmdq.c
│ │ │ ├── lapacke_sgedmdq_work.c
│ │ │ ├── lapacke_sgeequ.c
│ │ │ ├── lapacke_sgeequ_work.c
│ │ │ ├── lapacke_sgeequb.c
│ │ │ ├── lapacke_sgeequb_work.c
│ │ │ ├── lapacke_sgees.c
│ │ │ ├── lapacke_sgees_work.c
│ │ │ ├── lapacke_sgeesx.c
│ │ │ ├── lapacke_sgeesx_work.c
│ │ │ ├── lapacke_sgeev.c
│ │ │ ├── lapacke_sgeev_work.c
│ │ │ ├── lapacke_sgeevx.c
│ │ │ ├── lapacke_sgeevx_work.c
│ │ │ ├── lapacke_sgehrd.c
│ │ │ ├── lapacke_sgehrd_work.c
│ │ │ ├── lapacke_sgejsv.c
│ │ │ ├── lapacke_sgejsv_work.c
│ │ │ ├── lapacke_sgelq.c
│ │ │ ├── lapacke_sgelq2.c
│ │ │ ├── lapacke_sgelq2_work.c
│ │ │ ├── lapacke_sgelq_work.c
│ │ │ ├── lapacke_sgelqf.c
│ │ │ ├── lapacke_sgelqf_work.c
│ │ │ ├── lapacke_sgels.c
│ │ │ ├── lapacke_sgels_work.c
│ │ │ ├── lapacke_sgelsd.c
│ │ │ ├── lapacke_sgelsd_work.c
│ │ │ ├── lapacke_sgelss.c
│ │ │ ├── lapacke_sgelss_work.c
│ │ │ ├── lapacke_sgelsy.c
│ │ │ ├── lapacke_sgelsy_work.c
│ │ │ ├── lapacke_sgemlq.c
│ │ │ ├── lapacke_sgemlq_work.c
│ │ │ ├── lapacke_sgemqr.c
│ │ │ ├── lapacke_sgemqr_work.c
│ │ │ ├── lapacke_sgemqrt.c
│ │ │ ├── lapacke_sgemqrt_work.c
│ │ │ ├── lapacke_sgeqlf.c
│ │ │ ├── lapacke_sgeqlf_work.c
│ │ │ ├── lapacke_sgeqp3.c
│ │ │ ├── lapacke_sgeqp3_work.c
│ │ │ ├── lapacke_sgeqpf.c
│ │ │ ├── lapacke_sgeqpf_work.c
│ │ │ ├── lapacke_sgeqr.c
│ │ │ ├── lapacke_sgeqr2.c
│ │ │ ├── lapacke_sgeqr2_work.c
│ │ │ ├── lapacke_sgeqr_work.c
│ │ │ ├── lapacke_sgeqrf.c
│ │ │ ├── lapacke_sgeqrf_work.c
│ │ │ ├── lapacke_sgeqrfp.c
│ │ │ ├── lapacke_sgeqrfp_work.c
│ │ │ ├── lapacke_sgeqrt.c
│ │ │ ├── lapacke_sgeqrt2.c
│ │ │ ├── lapacke_sgeqrt2_work.c
│ │ │ ├── lapacke_sgeqrt3.c
│ │ │ ├── lapacke_sgeqrt3_work.c
│ │ │ ├── lapacke_sgeqrt_work.c
│ │ │ ├── lapacke_sgerfs.c
│ │ │ ├── lapacke_sgerfs_work.c
│ │ │ ├── lapacke_sgerfsx.c
│ │ │ ├── lapacke_sgerfsx_work.c
│ │ │ ├── lapacke_sgerqf.c
│ │ │ ├── lapacke_sgerqf_work.c
│ │ │ ├── lapacke_sgesdd.c
│ │ │ ├── lapacke_sgesdd_work.c
│ │ │ ├── lapacke_sgesv.c
│ │ │ ├── lapacke_sgesv_work.c
│ │ │ ├── lapacke_sgesvd.c
│ │ │ ├── lapacke_sgesvd_work.c
│ │ │ ├── lapacke_sgesvdq.c
│ │ │ ├── lapacke_sgesvdq_work.c
│ │ │ ├── lapacke_sgesvdx.c
│ │ │ ├── lapacke_sgesvdx_work.c
│ │ │ ├── lapacke_sgesvj.c
│ │ │ ├── lapacke_sgesvj_work.c
│ │ │ ├── lapacke_sgesvx.c
│ │ │ ├── lapacke_sgesvx_work.c
│ │ │ ├── lapacke_sgesvxx.c
│ │ │ ├── lapacke_sgesvxx_work.c
│ │ │ ├── lapacke_sgetf2.c
│ │ │ ├── lapacke_sgetf2_work.c
│ │ │ ├── lapacke_sgetrf.c
│ │ │ ├── lapacke_sgetrf2.c
│ │ │ ├── lapacke_sgetrf2_work.c
│ │ │ ├── lapacke_sgetrf_work.c
│ │ │ ├── lapacke_sgetri.c
│ │ │ ├── lapacke_sgetri_work.c
│ │ │ ├── lapacke_sgetrs.c
│ │ │ ├── lapacke_sgetrs_work.c
│ │ │ ├── lapacke_sgetsls.c
│ │ │ ├── lapacke_sgetsls_work.c
│ │ │ ├── lapacke_sgetsqrhrt.c
│ │ │ ├── lapacke_sgetsqrhrt_work.c
│ │ │ ├── lapacke_sggbak.c
│ │ │ ├── lapacke_sggbak_work.c
│ │ │ ├── lapacke_sggbal.c
│ │ │ ├── lapacke_sggbal_work.c
│ │ │ ├── lapacke_sgges.c
│ │ │ ├── lapacke_sgges3.c
│ │ │ ├── lapacke_sgges3_work.c
│ │ │ ├── lapacke_sgges_work.c
│ │ │ ├── lapacke_sggesx.c
│ │ │ ├── lapacke_sggesx_work.c
│ │ │ ├── lapacke_sggev.c
│ │ │ ├── lapacke_sggev3.c
│ │ │ ├── lapacke_sggev3_work.c
│ │ │ ├── lapacke_sggev_work.c
│ │ │ ├── lapacke_sggevx.c
│ │ │ ├── lapacke_sggevx_work.c
│ │ │ ├── lapacke_sggglm.c
│ │ │ ├── lapacke_sggglm_work.c
│ │ │ ├── lapacke_sgghd3.c
│ │ │ ├── lapacke_sgghd3_work.c
│ │ │ ├── lapacke_sgghrd.c
│ │ │ ├── lapacke_sgghrd_work.c
│ │ │ ├── lapacke_sgglse.c
│ │ │ ├── lapacke_sgglse_work.c
│ │ │ ├── lapacke_sggqrf.c
│ │ │ ├── lapacke_sggqrf_work.c
│ │ │ ├── lapacke_sggrqf.c
│ │ │ ├── lapacke_sggrqf_work.c
│ │ │ ├── lapacke_sggsvd.c
│ │ │ ├── lapacke_sggsvd3.c
│ │ │ ├── lapacke_sggsvd3_work.c
│ │ │ ├── lapacke_sggsvd_work.c
│ │ │ ├── lapacke_sggsvp.c
│ │ │ ├── lapacke_sggsvp3.c
│ │ │ ├── lapacke_sggsvp3_work.c
│ │ │ ├── lapacke_sggsvp_work.c
│ │ │ ├── lapacke_sgtcon.c
│ │ │ ├── lapacke_sgtcon_work.c
│ │ │ ├── lapacke_sgtrfs.c
│ │ │ ├── lapacke_sgtrfs_work.c
│ │ │ ├── lapacke_sgtsv.c
│ │ │ ├── lapacke_sgtsv_work.c
│ │ │ ├── lapacke_sgtsvx.c
│ │ │ ├── lapacke_sgtsvx_work.c
│ │ │ ├── lapacke_sgttrf.c
│ │ │ ├── lapacke_sgttrf_work.c
│ │ │ ├── lapacke_sgttrs.c
│ │ │ ├── lapacke_sgttrs_work.c
│ │ │ ├── lapacke_shgeqz.c
│ │ │ ├── lapacke_shgeqz_work.c
│ │ │ ├── lapacke_shsein.c
│ │ │ ├── lapacke_shsein_work.c
│ │ │ ├── lapacke_shseqr.c
│ │ │ ├── lapacke_shseqr_work.c
│ │ │ ├── lapacke_slacn2.c
│ │ │ ├── lapacke_slacn2_work.c
│ │ │ ├── lapacke_slacpy.c
│ │ │ ├── lapacke_slacpy_work.c
│ │ │ ├── lapacke_slag2d.c
│ │ │ ├── lapacke_slag2d_work.c
│ │ │ ├── lapacke_slagge.c
│ │ │ ├── lapacke_slagge_work.c
│ │ │ ├── lapacke_slagsy.c
│ │ │ ├── lapacke_slagsy_work.c
│ │ │ ├── lapacke_slamch.c
│ │ │ ├── lapacke_slamch_work.c
│ │ │ ├── lapacke_slangb.c
│ │ │ ├── lapacke_slangb_work.c
│ │ │ ├── lapacke_slange.c
│ │ │ ├── lapacke_slange_work.c
│ │ │ ├── lapacke_slansy.c
│ │ │ ├── lapacke_slansy_work.c
│ │ │ ├── lapacke_slantr.c
│ │ │ ├── lapacke_slantr_work.c
│ │ │ ├── lapacke_slapmr.c
│ │ │ ├── lapacke_slapmr_work.c
│ │ │ ├── lapacke_slapmt.c
│ │ │ ├── lapacke_slapmt_work.c
│ │ │ ├── lapacke_slapy2.c
│ │ │ ├── lapacke_slapy2_work.c
│ │ │ ├── lapacke_slapy3.c
│ │ │ ├── lapacke_slapy3_work.c
│ │ │ ├── lapacke_slarfb.c
│ │ │ ├── lapacke_slarfb_work.c
│ │ │ ├── lapacke_slarfg.c
│ │ │ ├── lapacke_slarfg_work.c
│ │ │ ├── lapacke_slarft.c
│ │ │ ├── lapacke_slarft_work.c
│ │ │ ├── lapacke_slarfx.c
│ │ │ ├── lapacke_slarfx_work.c
│ │ │ ├── lapacke_slarnv.c
│ │ │ ├── lapacke_slarnv_work.c
│ │ │ ├── lapacke_slartgp.c
│ │ │ ├── lapacke_slartgp_work.c
│ │ │ ├── lapacke_slartgs.c
│ │ │ ├── lapacke_slartgs_work.c
│ │ │ ├── lapacke_slascl.c
│ │ │ ├── lapacke_slascl_work.c
│ │ │ ├── lapacke_slaset.c
│ │ │ ├── lapacke_slaset_work.c
│ │ │ ├── lapacke_slasrt.c
│ │ │ ├── lapacke_slasrt_work.c
│ │ │ ├── lapacke_slassq.c
│ │ │ ├── lapacke_slassq_work.c
│ │ │ ├── lapacke_slaswp.c
│ │ │ ├── lapacke_slaswp_work.c
│ │ │ ├── lapacke_slatms.c
│ │ │ ├── lapacke_slatms_work.c
│ │ │ ├── lapacke_slauum.c
│ │ │ ├── lapacke_slauum_work.c
│ │ │ ├── lapacke_sopgtr.c
│ │ │ ├── lapacke_sopgtr_work.c
│ │ │ ├── lapacke_sopmtr.c
│ │ │ ├── lapacke_sopmtr_work.c
│ │ │ ├── lapacke_sorbdb.c
│ │ │ ├── lapacke_sorbdb_work.c
│ │ │ ├── lapacke_sorcsd.c
│ │ │ ├── lapacke_sorcsd2by1.c
│ │ │ ├── lapacke_sorcsd2by1_work.c
│ │ │ ├── lapacke_sorcsd_work.c
│ │ │ ├── lapacke_sorgbr.c
│ │ │ ├── lapacke_sorgbr_work.c
│ │ │ ├── lapacke_sorghr.c
│ │ │ ├── lapacke_sorghr_work.c
│ │ │ ├── lapacke_sorglq.c
│ │ │ ├── lapacke_sorglq_work.c
│ │ │ ├── lapacke_sorgql.c
│ │ │ ├── lapacke_sorgql_work.c
│ │ │ ├── lapacke_sorgqr.c
│ │ │ ├── lapacke_sorgqr_work.c
│ │ │ ├── lapacke_sorgrq.c
│ │ │ ├── lapacke_sorgrq_work.c
│ │ │ ├── lapacke_sorgtr.c
│ │ │ ├── lapacke_sorgtr_work.c
│ │ │ ├── lapacke_sorgtsqr_row.c
│ │ │ ├── lapacke_sorgtsqr_row_work.c
│ │ │ ├── lapacke_sorhr_col.c
│ │ │ ├── lapacke_sorhr_col_work.c
│ │ │ ├── lapacke_sormbr.c
│ │ │ ├── lapacke_sormbr_work.c
│ │ │ ├── lapacke_sormhr.c
│ │ │ ├── lapacke_sormhr_work.c
│ │ │ ├── lapacke_sormlq.c
│ │ │ ├── lapacke_sormlq_work.c
│ │ │ ├── lapacke_sormql.c
│ │ │ ├── lapacke_sormql_work.c
│ │ │ ├── lapacke_sormqr.c
│ │ │ ├── lapacke_sormqr_work.c
│ │ │ ├── lapacke_sormrq.c
│ │ │ ├── lapacke_sormrq_work.c
│ │ │ ├── lapacke_sormrz.c
│ │ │ ├── lapacke_sormrz_work.c
│ │ │ ├── lapacke_sormtr.c
│ │ │ ├── lapacke_sormtr_work.c
│ │ │ ├── lapacke_spbcon.c
│ │ │ ├── lapacke_spbcon_work.c
│ │ │ ├── lapacke_spbequ.c
│ │ │ ├── lapacke_spbequ_work.c
│ │ │ ├── lapacke_spbrfs.c
│ │ │ ├── lapacke_spbrfs_work.c
│ │ │ ├── lapacke_spbstf.c
│ │ │ ├── lapacke_spbstf_work.c
│ │ │ ├── lapacke_spbsv.c
│ │ │ ├── lapacke_spbsv_work.c
│ │ │ ├── lapacke_spbsvx.c
│ │ │ ├── lapacke_spbsvx_work.c
│ │ │ ├── lapacke_spbtrf.c
│ │ │ ├── lapacke_spbtrf_work.c
│ │ │ ├── lapacke_spbtrs.c
│ │ │ ├── lapacke_spbtrs_work.c
│ │ │ ├── lapacke_spftrf.c
│ │ │ ├── lapacke_spftrf_work.c
│ │ │ ├── lapacke_spftri.c
│ │ │ ├── lapacke_spftri_work.c
│ │ │ ├── lapacke_spftrs.c
│ │ │ ├── lapacke_spftrs_work.c
│ │ │ ├── lapacke_spocon.c
│ │ │ ├── lapacke_spocon_work.c
│ │ │ ├── lapacke_spoequ.c
│ │ │ ├── lapacke_spoequ_work.c
│ │ │ ├── lapacke_spoequb.c
│ │ │ ├── lapacke_spoequb_work.c
│ │ │ ├── lapacke_sporfs.c
│ │ │ ├── lapacke_sporfs_work.c
│ │ │ ├── lapacke_sporfsx.c
│ │ │ ├── lapacke_sporfsx_work.c
│ │ │ ├── lapacke_sposv.c
│ │ │ ├── lapacke_sposv_work.c
│ │ │ ├── lapacke_sposvx.c
│ │ │ ├── lapacke_sposvx_work.c
│ │ │ ├── lapacke_sposvxx.c
│ │ │ ├── lapacke_sposvxx_work.c
│ │ │ ├── lapacke_spotrf.c
│ │ │ ├── lapacke_spotrf2.c
│ │ │ ├── lapacke_spotrf2_work.c
│ │ │ ├── lapacke_spotrf_work.c
│ │ │ ├── lapacke_spotri.c
│ │ │ ├── lapacke_spotri_work.c
│ │ │ ├── lapacke_spotrs.c
│ │ │ ├── lapacke_spotrs_work.c
│ │ │ ├── lapacke_sppcon.c
│ │ │ ├── lapacke_sppcon_work.c
│ │ │ ├── lapacke_sppequ.c
│ │ │ ├── lapacke_sppequ_work.c
│ │ │ ├── lapacke_spprfs.c
│ │ │ ├── lapacke_spprfs_work.c
│ │ │ ├── lapacke_sppsv.c
│ │ │ ├── lapacke_sppsv_work.c
│ │ │ ├── lapacke_sppsvx.c
│ │ │ ├── lapacke_sppsvx_work.c
│ │ │ ├── lapacke_spptrf.c
│ │ │ ├── lapacke_spptrf_work.c
│ │ │ ├── lapacke_spptri.c
│ │ │ ├── lapacke_spptri_work.c
│ │ │ ├── lapacke_spptrs.c
│ │ │ ├── lapacke_spptrs_work.c
│ │ │ ├── lapacke_spstrf.c
│ │ │ ├── lapacke_spstrf_work.c
│ │ │ ├── lapacke_sptcon.c
│ │ │ ├── lapacke_sptcon_work.c
│ │ │ ├── lapacke_spteqr.c
│ │ │ ├── lapacke_spteqr_work.c
│ │ │ ├── lapacke_sptrfs.c
│ │ │ ├── lapacke_sptrfs_work.c
│ │ │ ├── lapacke_sptsv.c
│ │ │ ├── lapacke_sptsv_work.c
│ │ │ ├── lapacke_sptsvx.c
│ │ │ ├── lapacke_sptsvx_work.c
│ │ │ ├── lapacke_spttrf.c
│ │ │ ├── lapacke_spttrf_work.c
│ │ │ ├── lapacke_spttrs.c
│ │ │ ├── lapacke_spttrs_work.c
│ │ │ ├── lapacke_ssbev.c
│ │ │ ├── lapacke_ssbev_2stage.c
│ │ │ ├── lapacke_ssbev_2stage_work.c
│ │ │ ├── lapacke_ssbev_work.c
│ │ │ ├── lapacke_ssbevd.c
│ │ │ ├── lapacke_ssbevd_2stage.c
│ │ │ ├── lapacke_ssbevd_2stage_work.c
│ │ │ ├── lapacke_ssbevd_work.c
│ │ │ ├── lapacke_ssbevx.c
│ │ │ ├── lapacke_ssbevx_2stage.c
│ │ │ ├── lapacke_ssbevx_2stage_work.c
│ │ │ ├── lapacke_ssbevx_work.c
│ │ │ ├── lapacke_ssbgst.c
│ │ │ ├── lapacke_ssbgst_work.c
│ │ │ ├── lapacke_ssbgv.c
│ │ │ ├── lapacke_ssbgv_work.c
│ │ │ ├── lapacke_ssbgvd.c
│ │ │ ├── lapacke_ssbgvd_work.c
│ │ │ ├── lapacke_ssbgvx.c
│ │ │ ├── lapacke_ssbgvx_work.c
│ │ │ ├── lapacke_ssbtrd.c
│ │ │ ├── lapacke_ssbtrd_work.c
│ │ │ ├── lapacke_ssfrk.c
│ │ │ ├── lapacke_ssfrk_work.c
│ │ │ ├── lapacke_sspcon.c
│ │ │ ├── lapacke_sspcon_work.c
│ │ │ ├── lapacke_sspev.c
│ │ │ ├── lapacke_sspev_work.c
│ │ │ ├── lapacke_sspevd.c
│ │ │ ├── lapacke_sspevd_work.c
│ │ │ ├── lapacke_sspevx.c
│ │ │ ├── lapacke_sspevx_work.c
│ │ │ ├── lapacke_sspgst.c
│ │ │ ├── lapacke_sspgst_work.c
│ │ │ ├── lapacke_sspgv.c
│ │ │ ├── lapacke_sspgv_work.c
│ │ │ ├── lapacke_sspgvd.c
│ │ │ ├── lapacke_sspgvd_work.c
│ │ │ ├── lapacke_sspgvx.c
│ │ │ ├── lapacke_sspgvx_work.c
│ │ │ ├── lapacke_ssprfs.c
│ │ │ ├── lapacke_ssprfs_work.c
│ │ │ ├── lapacke_sspsv.c
│ │ │ ├── lapacke_sspsv_work.c
│ │ │ ├── lapacke_sspsvx.c
│ │ │ ├── lapacke_sspsvx_work.c
│ │ │ ├── lapacke_ssptrd.c
│ │ │ ├── lapacke_ssptrd_work.c
│ │ │ ├── lapacke_ssptrf.c
│ │ │ ├── lapacke_ssptrf_work.c
│ │ │ ├── lapacke_ssptri.c
│ │ │ ├── lapacke_ssptri_work.c
│ │ │ ├── lapacke_ssptrs.c
│ │ │ ├── lapacke_ssptrs_work.c
│ │ │ ├── lapacke_sstebz.c
│ │ │ ├── lapacke_sstebz_work.c
│ │ │ ├── lapacke_sstedc.c
│ │ │ ├── lapacke_sstedc_work.c
│ │ │ ├── lapacke_sstegr.c
│ │ │ ├── lapacke_sstegr_work.c
│ │ │ ├── lapacke_sstein.c
│ │ │ ├── lapacke_sstein_work.c
│ │ │ ├── lapacke_sstemr.c
│ │ │ ├── lapacke_sstemr_work.c
│ │ │ ├── lapacke_ssteqr.c
│ │ │ ├── lapacke_ssteqr_work.c
│ │ │ ├── lapacke_ssterf.c
│ │ │ ├── lapacke_ssterf_work.c
│ │ │ ├── lapacke_sstev.c
│ │ │ ├── lapacke_sstev_work.c
│ │ │ ├── lapacke_sstevd.c
│ │ │ ├── lapacke_sstevd_work.c
│ │ │ ├── lapacke_sstevr.c
│ │ │ ├── lapacke_sstevr_work.c
│ │ │ ├── lapacke_sstevx.c
│ │ │ ├── lapacke_sstevx_work.c
│ │ │ ├── lapacke_ssycon.c
│ │ │ ├── lapacke_ssycon_3.c
│ │ │ ├── lapacke_ssycon_3_work.c
│ │ │ ├── lapacke_ssycon_work.c
│ │ │ ├── lapacke_ssyconv.c
│ │ │ ├── lapacke_ssyconv_work.c
│ │ │ ├── lapacke_ssyequb.c
│ │ │ ├── lapacke_ssyequb_work.c
│ │ │ ├── lapacke_ssyev.c
│ │ │ ├── lapacke_ssyev_2stage.c
│ │ │ ├── lapacke_ssyev_2stage_work.c
│ │ │ ├── lapacke_ssyev_work.c
│ │ │ ├── lapacke_ssyevd.c
│ │ │ ├── lapacke_ssyevd_2stage.c
│ │ │ ├── lapacke_ssyevd_2stage_work.c
│ │ │ ├── lapacke_ssyevd_work.c
│ │ │ ├── lapacke_ssyevr.c
│ │ │ ├── lapacke_ssyevr_2stage.c
│ │ │ ├── lapacke_ssyevr_2stage_work.c
│ │ │ ├── lapacke_ssyevr_work.c
│ │ │ ├── lapacke_ssyevx.c
│ │ │ ├── lapacke_ssyevx_2stage.c
│ │ │ ├── lapacke_ssyevx_2stage_work.c
│ │ │ ├── lapacke_ssyevx_work.c
│ │ │ ├── lapacke_ssygst.c
│ │ │ ├── lapacke_ssygst_work.c
│ │ │ ├── lapacke_ssygv.c
│ │ │ ├── lapacke_ssygv_2stage.c
│ │ │ ├── lapacke_ssygv_2stage_work.c
│ │ │ ├── lapacke_ssygv_work.c
│ │ │ ├── lapacke_ssygvd.c
│ │ │ ├── lapacke_ssygvd_work.c
│ │ │ ├── lapacke_ssygvx.c
│ │ │ ├── lapacke_ssygvx_work.c
│ │ │ ├── lapacke_ssyrfs.c
│ │ │ ├── lapacke_ssyrfs_work.c
│ │ │ ├── lapacke_ssyrfsx.c
│ │ │ ├── lapacke_ssyrfsx_work.c
│ │ │ ├── lapacke_ssysv.c
│ │ │ ├── lapacke_ssysv_aa.c
│ │ │ ├── lapacke_ssysv_aa_2stage.c
│ │ │ ├── lapacke_ssysv_aa_2stage_work.c
│ │ │ ├── lapacke_ssysv_aa_work.c
│ │ │ ├── lapacke_ssysv_rk.c
│ │ │ ├── lapacke_ssysv_rk_work.c
│ │ │ ├── lapacke_ssysv_rook.c
│ │ │ ├── lapacke_ssysv_rook_work.c
│ │ │ ├── lapacke_ssysv_work.c
│ │ │ ├── lapacke_ssysvx.c
│ │ │ ├── lapacke_ssysvx_work.c
│ │ │ ├── lapacke_ssysvxx.c
│ │ │ ├── lapacke_ssysvxx_work.c
│ │ │ ├── lapacke_ssyswapr.c
│ │ │ ├── lapacke_ssyswapr_work.c
│ │ │ ├── lapacke_ssytrd.c
│ │ │ ├── lapacke_ssytrd_work.c
│ │ │ ├── lapacke_ssytrf.c
│ │ │ ├── lapacke_ssytrf_aa.c
│ │ │ ├── lapacke_ssytrf_aa_2stage.c
│ │ │ ├── lapacke_ssytrf_aa_2stage_work.c
│ │ │ ├── lapacke_ssytrf_aa_work.c
│ │ │ ├── lapacke_ssytrf_rk.c
│ │ │ ├── lapacke_ssytrf_rk_work.c
│ │ │ ├── lapacke_ssytrf_rook.c
│ │ │ ├── lapacke_ssytrf_rook_work.c
│ │ │ ├── lapacke_ssytrf_work.c
│ │ │ ├── lapacke_ssytri.c
│ │ │ ├── lapacke_ssytri2.c
│ │ │ ├── lapacke_ssytri2_work.c
│ │ │ ├── lapacke_ssytri2x.c
│ │ │ ├── lapacke_ssytri2x_work.c
│ │ │ ├── lapacke_ssytri_3.c
│ │ │ ├── lapacke_ssytri_3_work.c
│ │ │ ├── lapacke_ssytri_work.c
│ │ │ ├── lapacke_ssytrs.c
│ │ │ ├── lapacke_ssytrs2.c
│ │ │ ├── lapacke_ssytrs2_work.c
│ │ │ ├── lapacke_ssytrs_3.c
│ │ │ ├── lapacke_ssytrs_3_work.c
│ │ │ ├── lapacke_ssytrs_aa.c
│ │ │ ├── lapacke_ssytrs_aa_2stage.c
│ │ │ ├── lapacke_ssytrs_aa_2stage_work.c
│ │ │ ├── lapacke_ssytrs_aa_work.c
│ │ │ ├── lapacke_ssytrs_rook.c
│ │ │ ├── lapacke_ssytrs_rook_work.c
│ │ │ ├── lapacke_ssytrs_work.c
│ │ │ ├── lapacke_stbcon.c
│ │ │ ├── lapacke_stbcon_work.c
│ │ │ ├── lapacke_stbrfs.c
│ │ │ ├── lapacke_stbrfs_work.c
│ │ │ ├── lapacke_stbtrs.c
│ │ │ ├── lapacke_stbtrs_work.c
│ │ │ ├── lapacke_stfsm.c
│ │ │ ├── lapacke_stfsm_work.c
│ │ │ ├── lapacke_stftri.c
│ │ │ ├── lapacke_stftri_work.c
│ │ │ ├── lapacke_stfttp.c
│ │ │ ├── lapacke_stfttp_work.c
│ │ │ ├── lapacke_stfttr.c
│ │ │ ├── lapacke_stfttr_work.c
│ │ │ ├── lapacke_stgevc.c
│ │ │ ├── lapacke_stgevc_work.c
│ │ │ ├── lapacke_stgexc.c
│ │ │ ├── lapacke_stgexc_work.c
│ │ │ ├── lapacke_stgsen.c
│ │ │ ├── lapacke_stgsen_work.c
│ │ │ ├── lapacke_stgsja.c
│ │ │ ├── lapacke_stgsja_work.c
│ │ │ ├── lapacke_stgsna.c
│ │ │ ├── lapacke_stgsna_work.c
│ │ │ ├── lapacke_stgsyl.c
│ │ │ ├── lapacke_stgsyl_work.c
│ │ │ ├── lapacke_stpcon.c
│ │ │ ├── lapacke_stpcon_work.c
│ │ │ ├── lapacke_stpmqrt.c
│ │ │ ├── lapacke_stpmqrt_work.c
│ │ │ ├── lapacke_stpqrt.c
│ │ │ ├── lapacke_stpqrt2.c
│ │ │ ├── lapacke_stpqrt2_work.c
│ │ │ ├── lapacke_stpqrt_work.c
│ │ │ ├── lapacke_stprfb.c
│ │ │ ├── lapacke_stprfb_work.c
│ │ │ ├── lapacke_stprfs.c
│ │ │ ├── lapacke_stprfs_work.c
│ │ │ ├── lapacke_stptri.c
│ │ │ ├── lapacke_stptri_work.c
│ │ │ ├── lapacke_stptrs.c
│ │ │ ├── lapacke_stptrs_work.c
│ │ │ ├── lapacke_stpttf.c
│ │ │ ├── lapacke_stpttf_work.c
│ │ │ ├── lapacke_stpttr.c
│ │ │ ├── lapacke_stpttr_work.c
│ │ │ ├── lapacke_strcon.c
│ │ │ ├── lapacke_strcon_work.c
│ │ │ ├── lapacke_strevc.c
│ │ │ ├── lapacke_strevc_work.c
│ │ │ ├── lapacke_strexc.c
│ │ │ ├── lapacke_strexc_work.c
│ │ │ ├── lapacke_strrfs.c
│ │ │ ├── lapacke_strrfs_work.c
│ │ │ ├── lapacke_strsen.c
│ │ │ ├── lapacke_strsen_work.c
│ │ │ ├── lapacke_strsna.c
│ │ │ ├── lapacke_strsna_work.c
│ │ │ ├── lapacke_strsyl.c
│ │ │ ├── lapacke_strsyl3.c
│ │ │ ├── lapacke_strsyl3_work.c
│ │ │ ├── lapacke_strsyl_work.c
│ │ │ ├── lapacke_strtri.c
│ │ │ ├── lapacke_strtri_work.c
│ │ │ ├── lapacke_strtrs.c
│ │ │ ├── lapacke_strtrs_work.c
│ │ │ ├── lapacke_strttf.c
│ │ │ ├── lapacke_strttf_work.c
│ │ │ ├── lapacke_strttp.c
│ │ │ ├── lapacke_strttp_work.c
│ │ │ ├── lapacke_stzrzf.c
│ │ │ ├── lapacke_stzrzf_work.c
│ │ │ ├── lapacke_zbbcsd.c
│ │ │ ├── lapacke_zbbcsd_work.c
│ │ │ ├── lapacke_zbdsqr.c
│ │ │ ├── lapacke_zbdsqr_work.c
│ │ │ ├── lapacke_zcgesv.c
│ │ │ ├── lapacke_zcgesv_work.c
│ │ │ ├── lapacke_zcposv.c
│ │ │ ├── lapacke_zcposv_work.c
│ │ │ ├── lapacke_zgbbrd.c
│ │ │ ├── lapacke_zgbbrd_work.c
│ │ │ ├── lapacke_zgbcon.c
│ │ │ ├── lapacke_zgbcon_work.c
│ │ │ ├── lapacke_zgbequ.c
│ │ │ ├── lapacke_zgbequ_work.c
│ │ │ ├── lapacke_zgbequb.c
│ │ │ ├── lapacke_zgbequb_work.c
│ │ │ ├── lapacke_zgbrfs.c
│ │ │ ├── lapacke_zgbrfs_work.c
│ │ │ ├── lapacke_zgbrfsx.c
│ │ │ ├── lapacke_zgbrfsx_work.c
│ │ │ ├── lapacke_zgbsv.c
│ │ │ ├── lapacke_zgbsv_work.c
│ │ │ ├── lapacke_zgbsvx.c
│ │ │ ├── lapacke_zgbsvx_work.c
│ │ │ ├── lapacke_zgbsvxx.c
│ │ │ ├── lapacke_zgbsvxx_work.c
│ │ │ ├── lapacke_zgbtrf.c
│ │ │ ├── lapacke_zgbtrf_work.c
│ │ │ ├── lapacke_zgbtrs.c
│ │ │ ├── lapacke_zgbtrs_work.c
│ │ │ ├── lapacke_zgebak.c
│ │ │ ├── lapacke_zgebak_work.c
│ │ │ ├── lapacke_zgebal.c
│ │ │ ├── lapacke_zgebal_work.c
│ │ │ ├── lapacke_zgebrd.c
│ │ │ ├── lapacke_zgebrd_work.c
│ │ │ ├── lapacke_zgecon.c
│ │ │ ├── lapacke_zgecon_work.c
│ │ │ ├── lapacke_zgedmd.c
│ │ │ ├── lapacke_zgedmd_work.c
│ │ │ ├── lapacke_zgedmdq.c
│ │ │ ├── lapacke_zgedmdq_work.c
│ │ │ ├── lapacke_zgeequ.c
│ │ │ ├── lapacke_zgeequ_work.c
│ │ │ ├── lapacke_zgeequb.c
│ │ │ ├── lapacke_zgeequb_work.c
│ │ │ ├── lapacke_zgees.c
│ │ │ ├── lapacke_zgees_work.c
│ │ │ ├── lapacke_zgeesx.c
│ │ │ ├── lapacke_zgeesx_work.c
│ │ │ ├── lapacke_zgeev.c
│ │ │ ├── lapacke_zgeev_work.c
│ │ │ ├── lapacke_zgeevx.c
│ │ │ ├── lapacke_zgeevx_work.c
│ │ │ ├── lapacke_zgehrd.c
│ │ │ ├── lapacke_zgehrd_work.c
│ │ │ ├── lapacke_zgejsv.c
│ │ │ ├── lapacke_zgejsv_work.c
│ │ │ ├── lapacke_zgelq.c
│ │ │ ├── lapacke_zgelq2.c
│ │ │ ├── lapacke_zgelq2_work.c
│ │ │ ├── lapacke_zgelq_work.c
│ │ │ ├── lapacke_zgelqf.c
│ │ │ ├── lapacke_zgelqf_work.c
│ │ │ ├── lapacke_zgels.c
│ │ │ ├── lapacke_zgels_work.c
│ │ │ ├── lapacke_zgelsd.c
│ │ │ ├── lapacke_zgelsd_work.c
│ │ │ ├── lapacke_zgelss.c
│ │ │ ├── lapacke_zgelss_work.c
│ │ │ ├── lapacke_zgelsy.c
│ │ │ ├── lapacke_zgelsy_work.c
│ │ │ ├── lapacke_zgemlq.c
│ │ │ ├── lapacke_zgemlq_work.c
│ │ │ ├── lapacke_zgemqr.c
│ │ │ ├── lapacke_zgemqr_work.c
│ │ │ ├── lapacke_zgemqrt.c
│ │ │ ├── lapacke_zgemqrt_work.c
│ │ │ ├── lapacke_zgeqlf.c
│ │ │ ├── lapacke_zgeqlf_work.c
│ │ │ ├── lapacke_zgeqp3.c
│ │ │ ├── lapacke_zgeqp3_work.c
│ │ │ ├── lapacke_zgeqpf.c
│ │ │ ├── lapacke_zgeqpf_work.c
│ │ │ ├── lapacke_zgeqr.c
│ │ │ ├── lapacke_zgeqr2.c
│ │ │ ├── lapacke_zgeqr2_work.c
│ │ │ ├── lapacke_zgeqr_work.c
│ │ │ ├── lapacke_zgeqrf.c
│ │ │ ├── lapacke_zgeqrf_work.c
│ │ │ ├── lapacke_zgeqrfp.c
│ │ │ ├── lapacke_zgeqrfp_work.c
│ │ │ ├── lapacke_zgeqrt.c
│ │ │ ├── lapacke_zgeqrt2.c
│ │ │ ├── lapacke_zgeqrt2_work.c
│ │ │ ├── lapacke_zgeqrt3.c
│ │ │ ├── lapacke_zgeqrt3_work.c
│ │ │ ├── lapacke_zgeqrt_work.c
│ │ │ ├── lapacke_zgerfs.c
│ │ │ ├── lapacke_zgerfs_work.c
│ │ │ ├── lapacke_zgerfsx.c
│ │ │ ├── lapacke_zgerfsx_work.c
│ │ │ ├── lapacke_zgerqf.c
│ │ │ ├── lapacke_zgerqf_work.c
│ │ │ ├── lapacke_zgesdd.c
│ │ │ ├── lapacke_zgesdd_work.c
│ │ │ ├── lapacke_zgesv.c
│ │ │ ├── lapacke_zgesv_work.c
│ │ │ ├── lapacke_zgesvd.c
│ │ │ ├── lapacke_zgesvd_work.c
│ │ │ ├── lapacke_zgesvdq.c
│ │ │ ├── lapacke_zgesvdq_work.c
│ │ │ ├── lapacke_zgesvdx.c
│ │ │ ├── lapacke_zgesvdx_work.c
│ │ │ ├── lapacke_zgesvj.c
│ │ │ ├── lapacke_zgesvj_work.c
│ │ │ ├── lapacke_zgesvx.c
│ │ │ ├── lapacke_zgesvx_work.c
│ │ │ ├── lapacke_zgesvxx.c
│ │ │ ├── lapacke_zgesvxx_work.c
│ │ │ ├── lapacke_zgetf2.c
│ │ │ ├── lapacke_zgetf2_work.c
│ │ │ ├── lapacke_zgetrf.c
│ │ │ ├── lapacke_zgetrf2.c
│ │ │ ├── lapacke_zgetrf2_work.c
│ │ │ ├── lapacke_zgetrf_work.c
│ │ │ ├── lapacke_zgetri.c
│ │ │ ├── lapacke_zgetri_work.c
│ │ │ ├── lapacke_zgetrs.c
│ │ │ ├── lapacke_zgetrs_work.c
│ │ │ ├── lapacke_zgetsls.c
│ │ │ ├── lapacke_zgetsls_work.c
│ │ │ ├── lapacke_zgetsqrhrt.c
│ │ │ ├── lapacke_zgetsqrhrt_work.c
│ │ │ ├── lapacke_zggbak.c
│ │ │ ├── lapacke_zggbak_work.c
│ │ │ ├── lapacke_zggbal.c
│ │ │ ├── lapacke_zggbal_work.c
│ │ │ ├── lapacke_zgges.c
│ │ │ ├── lapacke_zgges3.c
│ │ │ ├── lapacke_zgges3_work.c
│ │ │ ├── lapacke_zgges_work.c
│ │ │ ├── lapacke_zggesx.c
│ │ │ ├── lapacke_zggesx_work.c
│ │ │ ├── lapacke_zggev.c
│ │ │ ├── lapacke_zggev3.c
│ │ │ ├── lapacke_zggev3_work.c
│ │ │ ├── lapacke_zggev_work.c
│ │ │ ├── lapacke_zggevx.c
│ │ │ ├── lapacke_zggevx_work.c
│ │ │ ├── lapacke_zggglm.c
│ │ │ ├── lapacke_zggglm_work.c
│ │ │ ├── lapacke_zgghd3.c
│ │ │ ├── lapacke_zgghd3_work.c
│ │ │ ├── lapacke_zgghrd.c
│ │ │ ├── lapacke_zgghrd_work.c
│ │ │ ├── lapacke_zgglse.c
│ │ │ ├── lapacke_zgglse_work.c
│ │ │ ├── lapacke_zggqrf.c
│ │ │ ├── lapacke_zggqrf_work.c
│ │ │ ├── lapacke_zggrqf.c
│ │ │ ├── lapacke_zggrqf_work.c
│ │ │ ├── lapacke_zggsvd.c
│ │ │ ├── lapacke_zggsvd3.c
│ │ │ ├── lapacke_zggsvd3_work.c
│ │ │ ├── lapacke_zggsvd_work.c
│ │ │ ├── lapacke_zggsvp.c
│ │ │ ├── lapacke_zggsvp3.c
│ │ │ ├── lapacke_zggsvp3_work.c
│ │ │ ├── lapacke_zggsvp_work.c
│ │ │ ├── lapacke_zgtcon.c
│ │ │ ├── lapacke_zgtcon_work.c
│ │ │ ├── lapacke_zgtrfs.c
│ │ │ ├── lapacke_zgtrfs_work.c
│ │ │ ├── lapacke_zgtsv.c
│ │ │ ├── lapacke_zgtsv_work.c
│ │ │ ├── lapacke_zgtsvx.c
│ │ │ ├── lapacke_zgtsvx_work.c
│ │ │ ├── lapacke_zgttrf.c
│ │ │ ├── lapacke_zgttrf_work.c
│ │ │ ├── lapacke_zgttrs.c
│ │ │ ├── lapacke_zgttrs_work.c
│ │ │ ├── lapacke_zhbev.c
│ │ │ ├── lapacke_zhbev_2stage.c
│ │ │ ├── lapacke_zhbev_2stage_work.c
│ │ │ ├── lapacke_zhbev_work.c
│ │ │ ├── lapacke_zhbevd.c
│ │ │ ├── lapacke_zhbevd_2stage.c
│ │ │ ├── lapacke_zhbevd_2stage_work.c
│ │ │ ├── lapacke_zhbevd_work.c
│ │ │ ├── lapacke_zhbevx.c
│ │ │ ├── lapacke_zhbevx_2stage.c
│ │ │ ├── lapacke_zhbevx_2stage_work.c
│ │ │ ├── lapacke_zhbevx_work.c
│ │ │ ├── lapacke_zhbgst.c
│ │ │ ├── lapacke_zhbgst_work.c
│ │ │ ├── lapacke_zhbgv.c
│ │ │ ├── lapacke_zhbgv_work.c
│ │ │ ├── lapacke_zhbgvd.c
│ │ │ ├── lapacke_zhbgvd_work.c
│ │ │ ├── lapacke_zhbgvx.c
│ │ │ ├── lapacke_zhbgvx_work.c
│ │ │ ├── lapacke_zhbtrd.c
│ │ │ ├── lapacke_zhbtrd_work.c
│ │ │ ├── lapacke_zhecon.c
│ │ │ ├── lapacke_zhecon_3.c
│ │ │ ├── lapacke_zhecon_3_work.c
│ │ │ ├── lapacke_zhecon_work.c
│ │ │ ├── lapacke_zheequb.c
│ │ │ ├── lapacke_zheequb_work.c
│ │ │ ├── lapacke_zheev.c
│ │ │ ├── lapacke_zheev_2stage.c
│ │ │ ├── lapacke_zheev_2stage_work.c
│ │ │ ├── lapacke_zheev_work.c
│ │ │ ├── lapacke_zheevd.c
│ │ │ ├── lapacke_zheevd_2stage.c
│ │ │ ├── lapacke_zheevd_2stage_work.c
│ │ │ ├── lapacke_zheevd_work.c
│ │ │ ├── lapacke_zheevr.c
│ │ │ ├── lapacke_zheevr_2stage.c
│ │ │ ├── lapacke_zheevr_2stage_work.c
│ │ │ ├── lapacke_zheevr_work.c
│ │ │ ├── lapacke_zheevx.c
│ │ │ ├── lapacke_zheevx_2stage.c
│ │ │ ├── lapacke_zheevx_2stage_work.c
│ │ │ ├── lapacke_zheevx_work.c
│ │ │ ├── lapacke_zhegst.c
│ │ │ ├── lapacke_zhegst_work.c
│ │ │ ├── lapacke_zhegv.c
│ │ │ ├── lapacke_zhegv_2stage.c
│ │ │ ├── lapacke_zhegv_2stage_work.c
│ │ │ ├── lapacke_zhegv_work.c
│ │ │ ├── lapacke_zhegvd.c
│ │ │ ├── lapacke_zhegvd_work.c
│ │ │ ├── lapacke_zhegvx.c
│ │ │ ├── lapacke_zhegvx_work.c
│ │ │ ├── lapacke_zherfs.c
│ │ │ ├── lapacke_zherfs_work.c
│ │ │ ├── lapacke_zherfsx.c
│ │ │ ├── lapacke_zherfsx_work.c
│ │ │ ├── lapacke_zhesv.c
│ │ │ ├── lapacke_zhesv_aa.c
│ │ │ ├── lapacke_zhesv_aa_2stage.c
│ │ │ ├── lapacke_zhesv_aa_2stage_work.c
│ │ │ ├── lapacke_zhesv_aa_work.c
│ │ │ ├── lapacke_zhesv_rk.c
│ │ │ ├── lapacke_zhesv_rk_work.c
│ │ │ ├── lapacke_zhesv_work.c
│ │ │ ├── lapacke_zhesvx.c
│ │ │ ├── lapacke_zhesvx_work.c
│ │ │ ├── lapacke_zhesvxx.c
│ │ │ ├── lapacke_zhesvxx_work.c
│ │ │ ├── lapacke_zheswapr.c
│ │ │ ├── lapacke_zheswapr_work.c
│ │ │ ├── lapacke_zhetrd.c
│ │ │ ├── lapacke_zhetrd_work.c
│ │ │ ├── lapacke_zhetrf.c
│ │ │ ├── lapacke_zhetrf_aa.c
│ │ │ ├── lapacke_zhetrf_aa_2stage.c
│ │ │ ├── lapacke_zhetrf_aa_2stage_work.c
│ │ │ ├── lapacke_zhetrf_aa_work.c
│ │ │ ├── lapacke_zhetrf_rk.c
│ │ │ ├── lapacke_zhetrf_rk_work.c
│ │ │ ├── lapacke_zhetrf_rook.c
│ │ │ ├── lapacke_zhetrf_rook_work.c
│ │ │ ├── lapacke_zhetrf_work.c
│ │ │ ├── lapacke_zhetri.c
│ │ │ ├── lapacke_zhetri2.c
│ │ │ ├── lapacke_zhetri2_work.c
│ │ │ ├── lapacke_zhetri2x.c
│ │ │ ├── lapacke_zhetri2x_work.c
│ │ │ ├── lapacke_zhetri_3.c
│ │ │ ├── lapacke_zhetri_3_work.c
│ │ │ ├── lapacke_zhetri_work.c
│ │ │ ├── lapacke_zhetrs.c
│ │ │ ├── lapacke_zhetrs2.c
│ │ │ ├── lapacke_zhetrs2_work.c
│ │ │ ├── lapacke_zhetrs_3.c
│ │ │ ├── lapacke_zhetrs_3_work.c
│ │ │ ├── lapacke_zhetrs_aa.c
│ │ │ ├── lapacke_zhetrs_aa_2stage.c
│ │ │ ├── lapacke_zhetrs_aa_2stage_work.c
│ │ │ ├── lapacke_zhetrs_aa_work.c
│ │ │ ├── lapacke_zhetrs_rook.c
│ │ │ ├── lapacke_zhetrs_rook_work.c
│ │ │ ├── lapacke_zhetrs_work.c
│ │ │ ├── lapacke_zhfrk.c
│ │ │ ├── lapacke_zhfrk_work.c
│ │ │ ├── lapacke_zhgeqz.c
│ │ │ ├── lapacke_zhgeqz_work.c
│ │ │ ├── lapacke_zhpcon.c
│ │ │ ├── lapacke_zhpcon_work.c
│ │ │ ├── lapacke_zhpev.c
│ │ │ ├── lapacke_zhpev_work.c
│ │ │ ├── lapacke_zhpevd.c
│ │ │ ├── lapacke_zhpevd_work.c
│ │ │ ├── lapacke_zhpevx.c
│ │ │ ├── lapacke_zhpevx_work.c
│ │ │ ├── lapacke_zhpgst.c
│ │ │ ├── lapacke_zhpgst_work.c
│ │ │ ├── lapacke_zhpgv.c
│ │ │ ├── lapacke_zhpgv_work.c
│ │ │ ├── lapacke_zhpgvd.c
│ │ │ ├── lapacke_zhpgvd_work.c
│ │ │ ├── lapacke_zhpgvx.c
│ │ │ ├── lapacke_zhpgvx_work.c
│ │ │ ├── lapacke_zhprfs.c
│ │ │ ├── lapacke_zhprfs_work.c
│ │ │ ├── lapacke_zhpsv.c
│ │ │ ├── lapacke_zhpsv_work.c
│ │ │ ├── lapacke_zhpsvx.c
│ │ │ ├── lapacke_zhpsvx_work.c
│ │ │ ├── lapacke_zhptrd.c
│ │ │ ├── lapacke_zhptrd_work.c
│ │ │ ├── lapacke_zhptrf.c
│ │ │ ├── lapacke_zhptrf_work.c
│ │ │ ├── lapacke_zhptri.c
│ │ │ ├── lapacke_zhptri_work.c
│ │ │ ├── lapacke_zhptrs.c
│ │ │ ├── lapacke_zhptrs_work.c
│ │ │ ├── lapacke_zhsein.c
│ │ │ ├── lapacke_zhsein_work.c
│ │ │ ├── lapacke_zhseqr.c
│ │ │ ├── lapacke_zhseqr_work.c
│ │ │ ├── lapacke_zlacgv.c
│ │ │ ├── lapacke_zlacgv_work.c
│ │ │ ├── lapacke_zlacn2.c
│ │ │ ├── lapacke_zlacn2_work.c
│ │ │ ├── lapacke_zlacp2.c
│ │ │ ├── lapacke_zlacp2_work.c
│ │ │ ├── lapacke_zlacpy.c
│ │ │ ├── lapacke_zlacpy_work.c
│ │ │ ├── lapacke_zlacrm.c
│ │ │ ├── lapacke_zlacrm_work.c
│ │ │ ├── lapacke_zlag2c.c
│ │ │ ├── lapacke_zlag2c_work.c
│ │ │ ├── lapacke_zlagge.c
│ │ │ ├── lapacke_zlagge_work.c
│ │ │ ├── lapacke_zlaghe.c
│ │ │ ├── lapacke_zlaghe_work.c
│ │ │ ├── lapacke_zlagsy.c
│ │ │ ├── lapacke_zlagsy_work.c
│ │ │ ├── lapacke_zlangb.c
│ │ │ ├── lapacke_zlangb_work.c
│ │ │ ├── lapacke_zlange.c
│ │ │ ├── lapacke_zlange_work.c
│ │ │ ├── lapacke_zlanhe.c
│ │ │ ├── lapacke_zlanhe_work.c
│ │ │ ├── lapacke_zlansy.c
│ │ │ ├── lapacke_zlansy_work.c
│ │ │ ├── lapacke_zlantr.c
│ │ │ ├── lapacke_zlantr_work.c
│ │ │ ├── lapacke_zlapmr.c
│ │ │ ├── lapacke_zlapmr_work.c
│ │ │ ├── lapacke_zlapmt.c
│ │ │ ├── lapacke_zlapmt_work.c
│ │ │ ├── lapacke_zlarcm.c
│ │ │ ├── lapacke_zlarcm_work.c
│ │ │ ├── lapacke_zlarfb.c
│ │ │ ├── lapacke_zlarfb_work.c
│ │ │ ├── lapacke_zlarfg.c
│ │ │ ├── lapacke_zlarfg_work.c
│ │ │ ├── lapacke_zlarft.c
│ │ │ ├── lapacke_zlarft_work.c
│ │ │ ├── lapacke_zlarfx.c
│ │ │ ├── lapacke_zlarfx_work.c
│ │ │ ├── lapacke_zlarnv.c
│ │ │ ├── lapacke_zlarnv_work.c
│ │ │ ├── lapacke_zlascl.c
│ │ │ ├── lapacke_zlascl_work.c
│ │ │ ├── lapacke_zlaset.c
│ │ │ ├── lapacke_zlaset_work.c
│ │ │ ├── lapacke_zlassq.c
│ │ │ ├── lapacke_zlassq_work.c
│ │ │ ├── lapacke_zlaswp.c
│ │ │ ├── lapacke_zlaswp_work.c
│ │ │ ├── lapacke_zlatms.c
│ │ │ ├── lapacke_zlatms_work.c
│ │ │ ├── lapacke_zlauum.c
│ │ │ ├── lapacke_zlauum_work.c
│ │ │ ├── lapacke_zpbcon.c
│ │ │ ├── lapacke_zpbcon_work.c
│ │ │ ├── lapacke_zpbequ.c
│ │ │ ├── lapacke_zpbequ_work.c
│ │ │ ├── lapacke_zpbrfs.c
│ │ │ ├── lapacke_zpbrfs_work.c
│ │ │ ├── lapacke_zpbstf.c
│ │ │ ├── lapacke_zpbstf_work.c
│ │ │ ├── lapacke_zpbsv.c
│ │ │ ├── lapacke_zpbsv_work.c
│ │ │ ├── lapacke_zpbsvx.c
│ │ │ ├── lapacke_zpbsvx_work.c
│ │ │ ├── lapacke_zpbtrf.c
│ │ │ ├── lapacke_zpbtrf_work.c
│ │ │ ├── lapacke_zpbtrs.c
│ │ │ ├── lapacke_zpbtrs_work.c
│ │ │ ├── lapacke_zpftrf.c
│ │ │ ├── lapacke_zpftrf_work.c
│ │ │ ├── lapacke_zpftri.c
│ │ │ ├── lapacke_zpftri_work.c
│ │ │ ├── lapacke_zpftrs.c
│ │ │ ├── lapacke_zpftrs_work.c
│ │ │ ├── lapacke_zpocon.c
│ │ │ ├── lapacke_zpocon_work.c
│ │ │ ├── lapacke_zpoequ.c
│ │ │ ├── lapacke_zpoequ_work.c
│ │ │ ├── lapacke_zpoequb.c
│ │ │ ├── lapacke_zpoequb_work.c
│ │ │ ├── lapacke_zporfs.c
│ │ │ ├── lapacke_zporfs_work.c
│ │ │ ├── lapacke_zporfsx.c
│ │ │ ├── lapacke_zporfsx_work.c
│ │ │ ├── lapacke_zposv.c
│ │ │ ├── lapacke_zposv_work.c
│ │ │ ├── lapacke_zposvx.c
│ │ │ ├── lapacke_zposvx_work.c
│ │ │ ├── lapacke_zposvxx.c
│ │ │ ├── lapacke_zposvxx_work.c
│ │ │ ├── lapacke_zpotrf.c
│ │ │ ├── lapacke_zpotrf2.c
│ │ │ ├── lapacke_zpotrf2_work.c
│ │ │ ├── lapacke_zpotrf_work.c
│ │ │ ├── lapacke_zpotri.c
│ │ │ ├── lapacke_zpotri_work.c
│ │ │ ├── lapacke_zpotrs.c
│ │ │ ├── lapacke_zpotrs_work.c
│ │ │ ├── lapacke_zppcon.c
│ │ │ ├── lapacke_zppcon_work.c
│ │ │ ├── lapacke_zppequ.c
│ │ │ ├── lapacke_zppequ_work.c
│ │ │ ├── lapacke_zpprfs.c
│ │ │ ├── lapacke_zpprfs_work.c
│ │ │ ├── lapacke_zppsv.c
│ │ │ ├── lapacke_zppsv_work.c
│ │ │ ├── lapacke_zppsvx.c
│ │ │ ├── lapacke_zppsvx_work.c
│ │ │ ├── lapacke_zpptrf.c
│ │ │ ├── lapacke_zpptrf_work.c
│ │ │ ├── lapacke_zpptri.c
│ │ │ ├── lapacke_zpptri_work.c
│ │ │ ├── lapacke_zpptrs.c
│ │ │ ├── lapacke_zpptrs_work.c
│ │ │ ├── lapacke_zpstrf.c
│ │ │ ├── lapacke_zpstrf_work.c
│ │ │ ├── lapacke_zptcon.c
│ │ │ ├── lapacke_zptcon_work.c
│ │ │ ├── lapacke_zpteqr.c
│ │ │ ├── lapacke_zpteqr_work.c
│ │ │ ├── lapacke_zptrfs.c
│ │ │ ├── lapacke_zptrfs_work.c
│ │ │ ├── lapacke_zptsv.c
│ │ │ ├── lapacke_zptsv_work.c
│ │ │ ├── lapacke_zptsvx.c
│ │ │ ├── lapacke_zptsvx_work.c
│ │ │ ├── lapacke_zpttrf.c
│ │ │ ├── lapacke_zpttrf_work.c
│ │ │ ├── lapacke_zpttrs.c
│ │ │ ├── lapacke_zpttrs_work.c
│ │ │ ├── lapacke_zspcon.c
│ │ │ ├── lapacke_zspcon_work.c
│ │ │ ├── lapacke_zsprfs.c
│ │ │ ├── lapacke_zsprfs_work.c
│ │ │ ├── lapacke_zspsv.c
│ │ │ ├── lapacke_zspsv_work.c
│ │ │ ├── lapacke_zspsvx.c
│ │ │ ├── lapacke_zspsvx_work.c
│ │ │ ├── lapacke_zsptrf.c
│ │ │ ├── lapacke_zsptrf_work.c
│ │ │ ├── lapacke_zsptri.c
│ │ │ ├── lapacke_zsptri_work.c
│ │ │ ├── lapacke_zsptrs.c
│ │ │ ├── lapacke_zsptrs_work.c
│ │ │ ├── lapacke_zstedc.c
│ │ │ ├── lapacke_zstedc_work.c
│ │ │ ├── lapacke_zstegr.c
│ │ │ ├── lapacke_zstegr_work.c
│ │ │ ├── lapacke_zstein.c
│ │ │ ├── lapacke_zstein_work.c
│ │ │ ├── lapacke_zstemr.c
│ │ │ ├── lapacke_zstemr_work.c
│ │ │ ├── lapacke_zsteqr.c
│ │ │ ├── lapacke_zsteqr_work.c
│ │ │ ├── lapacke_zsycon.c
│ │ │ ├── lapacke_zsycon_3.c
│ │ │ ├── lapacke_zsycon_3_work.c
│ │ │ ├── lapacke_zsycon_work.c
│ │ │ ├── lapacke_zsyconv.c
│ │ │ ├── lapacke_zsyconv_work.c
│ │ │ ├── lapacke_zsyequb.c
│ │ │ ├── lapacke_zsyequb_work.c
│ │ │ ├── lapacke_zsyr.c
│ │ │ ├── lapacke_zsyr_work.c
│ │ │ ├── lapacke_zsyrfs.c
│ │ │ ├── lapacke_zsyrfs_work.c
│ │ │ ├── lapacke_zsyrfsx.c
│ │ │ ├── lapacke_zsyrfsx_work.c
│ │ │ ├── lapacke_zsysv.c
│ │ │ ├── lapacke_zsysv_aa.c
│ │ │ ├── lapacke_zsysv_aa_2stage.c
│ │ │ ├── lapacke_zsysv_aa_2stage_work.c
│ │ │ ├── lapacke_zsysv_aa_work.c
│ │ │ ├── lapacke_zsysv_rk.c
│ │ │ ├── lapacke_zsysv_rk_work.c
│ │ │ ├── lapacke_zsysv_rook.c
│ │ │ ├── lapacke_zsysv_rook_work.c
│ │ │ ├── lapacke_zsysv_work.c
│ │ │ ├── lapacke_zsysvx.c
│ │ │ ├── lapacke_zsysvx_work.c
│ │ │ ├── lapacke_zsysvxx.c
│ │ │ ├── lapacke_zsysvxx_work.c
│ │ │ ├── lapacke_zsyswapr.c
│ │ │ ├── lapacke_zsyswapr_work.c
│ │ │ ├── lapacke_zsytrf.c
│ │ │ ├── lapacke_zsytrf_aa.c
│ │ │ ├── lapacke_zsytrf_aa_2stage.c
│ │ │ ├── lapacke_zsytrf_aa_2stage_work.c
│ │ │ ├── lapacke_zsytrf_aa_work.c
│ │ │ ├── lapacke_zsytrf_rk.c
│ │ │ ├── lapacke_zsytrf_rk_work.c
│ │ │ ├── lapacke_zsytrf_rook.c
│ │ │ ├── lapacke_zsytrf_rook_work.c
│ │ │ ├── lapacke_zsytrf_work.c
│ │ │ ├── lapacke_zsytri.c
│ │ │ ├── lapacke_zsytri2.c
│ │ │ ├── lapacke_zsytri2_work.c
│ │ │ ├── lapacke_zsytri2x.c
│ │ │ ├── lapacke_zsytri2x_work.c
│ │ │ ├── lapacke_zsytri_3.c
│ │ │ ├── lapacke_zsytri_3_work.c
│ │ │ ├── lapacke_zsytri_work.c
│ │ │ ├── lapacke_zsytrs.c
│ │ │ ├── lapacke_zsytrs2.c
│ │ │ ├── lapacke_zsytrs2_work.c
│ │ │ ├── lapacke_zsytrs_3.c
│ │ │ ├── lapacke_zsytrs_3_work.c
│ │ │ ├── lapacke_zsytrs_aa.c
│ │ │ ├── lapacke_zsytrs_aa_2stage.c
│ │ │ ├── lapacke_zsytrs_aa_2stage_work.c
│ │ │ ├── lapacke_zsytrs_aa_work.c
│ │ │ ├── lapacke_zsytrs_rook.c
│ │ │ ├── lapacke_zsytrs_rook_work.c
│ │ │ ├── lapacke_zsytrs_work.c
│ │ │ ├── lapacke_ztbcon.c
│ │ │ ├── lapacke_ztbcon_work.c
│ │ │ ├── lapacke_ztbrfs.c
│ │ │ ├── lapacke_ztbrfs_work.c
│ │ │ ├── lapacke_ztbtrs.c
│ │ │ ├── lapacke_ztbtrs_work.c
│ │ │ ├── lapacke_ztfsm.c
│ │ │ ├── lapacke_ztfsm_work.c
│ │ │ ├── lapacke_ztftri.c
│ │ │ ├── lapacke_ztftri_work.c
│ │ │ ├── lapacke_ztfttp.c
│ │ │ ├── lapacke_ztfttp_work.c
│ │ │ ├── lapacke_ztfttr.c
│ │ │ ├── lapacke_ztfttr_work.c
│ │ │ ├── lapacke_ztgevc.c
│ │ │ ├── lapacke_ztgevc_work.c
│ │ │ ├── lapacke_ztgexc.c
│ │ │ ├── lapacke_ztgexc_work.c
│ │ │ ├── lapacke_ztgsen.c
│ │ │ ├── lapacke_ztgsen_work.c
│ │ │ ├── lapacke_ztgsja.c
│ │ │ ├── lapacke_ztgsja_work.c
│ │ │ ├── lapacke_ztgsna.c
│ │ │ ├── lapacke_ztgsna_work.c
│ │ │ ├── lapacke_ztgsyl.c
│ │ │ ├── lapacke_ztgsyl_work.c
│ │ │ ├── lapacke_ztpcon.c
│ │ │ ├── lapacke_ztpcon_work.c
│ │ │ ├── lapacke_ztpmqrt.c
│ │ │ ├── lapacke_ztpmqrt_work.c
│ │ │ ├── lapacke_ztpqrt.c
│ │ │ ├── lapacke_ztpqrt2.c
│ │ │ ├── lapacke_ztpqrt2_work.c
│ │ │ ├── lapacke_ztpqrt_work.c
│ │ │ ├── lapacke_ztprfb.c
│ │ │ ├── lapacke_ztprfb_work.c
│ │ │ ├── lapacke_ztprfs.c
│ │ │ ├── lapacke_ztprfs_work.c
│ │ │ ├── lapacke_ztptri.c
│ │ │ ├── lapacke_ztptri_work.c
│ │ │ ├── lapacke_ztptrs.c
│ │ │ ├── lapacke_ztptrs_work.c
│ │ │ ├── lapacke_ztpttf.c
│ │ │ ├── lapacke_ztpttf_work.c
│ │ │ ├── lapacke_ztpttr.c
│ │ │ ├── lapacke_ztpttr_work.c
│ │ │ ├── lapacke_ztrcon.c
│ │ │ ├── lapacke_ztrcon_work.c
│ │ │ ├── lapacke_ztrevc.c
│ │ │ ├── lapacke_ztrevc_work.c
│ │ │ ├── lapacke_ztrexc.c
│ │ │ ├── lapacke_ztrexc_work.c
│ │ │ ├── lapacke_ztrrfs.c
│ │ │ ├── lapacke_ztrrfs_work.c
│ │ │ ├── lapacke_ztrsen.c
│ │ │ ├── lapacke_ztrsen_work.c
│ │ │ ├── lapacke_ztrsna.c
│ │ │ ├── lapacke_ztrsna_work.c
│ │ │ ├── lapacke_ztrsyl.c
│ │ │ ├── lapacke_ztrsyl3.c
│ │ │ ├── lapacke_ztrsyl3_work.c
│ │ │ ├── lapacke_ztrsyl_work.c
│ │ │ ├── lapacke_ztrtri.c
│ │ │ ├── lapacke_ztrtri_work.c
│ │ │ ├── lapacke_ztrtrs.c
│ │ │ ├── lapacke_ztrtrs_work.c
│ │ │ ├── lapacke_ztrttf.c
│ │ │ ├── lapacke_ztrttf_work.c
│ │ │ ├── lapacke_ztrttp.c
│ │ │ ├── lapacke_ztrttp_work.c
│ │ │ ├── lapacke_ztzrzf.c
│ │ │ ├── lapacke_ztzrzf_work.c
│ │ │ ├── lapacke_zunbdb.c
│ │ │ ├── lapacke_zunbdb_work.c
│ │ │ ├── lapacke_zuncsd.c
│ │ │ ├── lapacke_zuncsd2by1.c
│ │ │ ├── lapacke_zuncsd2by1_work.c
│ │ │ ├── lapacke_zuncsd_work.c
│ │ │ ├── lapacke_zungbr.c
│ │ │ ├── lapacke_zungbr_work.c
│ │ │ ├── lapacke_zunghr.c
│ │ │ ├── lapacke_zunghr_work.c
│ │ │ ├── lapacke_zunglq.c
│ │ │ ├── lapacke_zunglq_work.c
│ │ │ ├── lapacke_zungql.c
│ │ │ ├── lapacke_zungql_work.c
│ │ │ ├── lapacke_zungqr.c
│ │ │ ├── lapacke_zungqr_work.c
│ │ │ ├── lapacke_zungrq.c
│ │ │ ├── lapacke_zungrq_work.c
│ │ │ ├── lapacke_zungtr.c
│ │ │ ├── lapacke_zungtr_work.c
│ │ │ ├── lapacke_zungtsqr_row.c
│ │ │ ├── lapacke_zungtsqr_row_work.c
│ │ │ ├── lapacke_zunhr_col.c
│ │ │ ├── lapacke_zunhr_col_work.c
│ │ │ ├── lapacke_zunmbr.c
│ │ │ ├── lapacke_zunmbr_work.c
│ │ │ ├── lapacke_zunmhr.c
│ │ │ ├── lapacke_zunmhr_work.c
│ │ │ ├── lapacke_zunmlq.c
│ │ │ ├── lapacke_zunmlq_work.c
│ │ │ ├── lapacke_zunmql.c
│ │ │ ├── lapacke_zunmql_work.c
│ │ │ ├── lapacke_zunmqr.c
│ │ │ ├── lapacke_zunmqr_work.c
│ │ │ ├── lapacke_zunmrq.c
│ │ │ ├── lapacke_zunmrq_work.c
│ │ │ ├── lapacke_zunmrz.c
│ │ │ ├── lapacke_zunmrz_work.c
│ │ │ ├── lapacke_zunmtr.c
│ │ │ ├── lapacke_zunmtr_work.c
│ │ │ ├── lapacke_zupgtr.c
│ │ │ ├── lapacke_zupgtr_work.c
│ │ │ ├── lapacke_zupmtr.c
│ │ │ └── lapacke_zupmtr_work.c
│ │ └── utils/
│ │ ├── CMakeLists.txt
│ │ ├── Makefile
│ │ ├── lapacke_c_nancheck.c
│ │ ├── lapacke_cgb_nancheck.c
│ │ ├── lapacke_cgb_trans.c
│ │ ├── lapacke_cge_nancheck.c
│ │ ├── lapacke_cge_trans.c
│ │ ├── lapacke_cgg_nancheck.c
│ │ ├── lapacke_cgg_trans.c
│ │ ├── lapacke_cgt_nancheck.c
│ │ ├── lapacke_chb_nancheck.c
│ │ ├── lapacke_chb_trans.c
│ │ ├── lapacke_che_nancheck.c
│ │ ├── lapacke_che_trans.c
│ │ ├── lapacke_chp_nancheck.c
│ │ ├── lapacke_chp_trans.c
│ │ ├── lapacke_chs_nancheck.c
│ │ ├── lapacke_chs_trans.c
│ │ ├── lapacke_cpb_nancheck.c
│ │ ├── lapacke_cpb_trans.c
│ │ ├── lapacke_cpf_nancheck.c
│ │ ├── lapacke_cpf_trans.c
│ │ ├── lapacke_cpo_nancheck.c
│ │ ├── lapacke_cpo_trans.c
│ │ ├── lapacke_cpp_nancheck.c
│ │ ├── lapacke_cpp_trans.c
│ │ ├── lapacke_cpt_nancheck.c
│ │ ├── lapacke_csp_nancheck.c
│ │ ├── lapacke_csp_trans.c
│ │ ├── lapacke_cst_nancheck.c
│ │ ├── lapacke_csy_nancheck.c
│ │ ├── lapacke_csy_trans.c
│ │ ├── lapacke_ctb_nancheck.c
│ │ ├── lapacke_ctb_trans.c
│ │ ├── lapacke_ctf_nancheck.c
│ │ ├── lapacke_ctf_trans.c
│ │ ├── lapacke_ctp_nancheck.c
│ │ ├── lapacke_ctp_trans.c
│ │ ├── lapacke_ctr_nancheck.c
│ │ ├── lapacke_ctr_trans.c
│ │ ├── lapacke_ctz_nancheck.c
│ │ ├── lapacke_ctz_trans.c
│ │ ├── lapacke_d_nancheck.c
│ │ ├── lapacke_dgb_nancheck.c
│ │ ├── lapacke_dgb_trans.c
│ │ ├── lapacke_dge_nancheck.c
│ │ ├── lapacke_dge_trans.c
│ │ ├── lapacke_dgg_nancheck.c
│ │ ├── lapacke_dgg_trans.c
│ │ ├── lapacke_dgt_nancheck.c
│ │ ├── lapacke_dhs_nancheck.c
│ │ ├── lapacke_dhs_trans.c
│ │ ├── lapacke_dpb_nancheck.c
│ │ ├── lapacke_dpb_trans.c
│ │ ├── lapacke_dpf_nancheck.c
│ │ ├── lapacke_dpf_trans.c
│ │ ├── lapacke_dpo_nancheck.c
│ │ ├── lapacke_dpo_trans.c
│ │ ├── lapacke_dpp_nancheck.c
│ │ ├── lapacke_dpp_trans.c
│ │ ├── lapacke_dpt_nancheck.c
│ │ ├── lapacke_dsb_nancheck.c
│ │ ├── lapacke_dsb_trans.c
│ │ ├── lapacke_dsp_nancheck.c
│ │ ├── lapacke_dsp_trans.c
│ │ ├── lapacke_dst_nancheck.c
│ │ ├── lapacke_dsy_nancheck.c
│ │ ├── lapacke_dsy_trans.c
│ │ ├── lapacke_dtb_nancheck.c
│ │ ├── lapacke_dtb_trans.c
│ │ ├── lapacke_dtf_nancheck.c
│ │ ├── lapacke_dtf_trans.c
│ │ ├── lapacke_dtp_nancheck.c
│ │ ├── lapacke_dtp_trans.c
│ │ ├── lapacke_dtr_nancheck.c
│ │ ├── lapacke_dtr_trans.c
│ │ ├── lapacke_dtz_nancheck.c
│ │ ├── lapacke_dtz_trans.c
│ │ ├── lapacke_lsame.c
│ │ ├── lapacke_make_complex_double.c
│ │ ├── lapacke_make_complex_float.c
│ │ ├── lapacke_s_nancheck.c
│ │ ├── lapacke_sgb_nancheck.c
│ │ ├── lapacke_sgb_trans.c
│ │ ├── lapacke_sge_nancheck.c
│ │ ├── lapacke_sge_trans.c
│ │ ├── lapacke_sgg_nancheck.c
│ │ ├── lapacke_sgg_trans.c
│ │ ├── lapacke_sgt_nancheck.c
│ │ ├── lapacke_shs_nancheck.c
│ │ ├── lapacke_shs_trans.c
│ │ ├── lapacke_spb_nancheck.c
│ │ ├── lapacke_spb_trans.c
│ │ ├── lapacke_spf_nancheck.c
│ │ ├── lapacke_spf_trans.c
│ │ ├── lapacke_spo_nancheck.c
│ │ ├── lapacke_spo_trans.c
│ │ ├── lapacke_spp_nancheck.c
│ │ ├── lapacke_spp_trans.c
│ │ ├── lapacke_spt_nancheck.c
│ │ ├── lapacke_ssb_nancheck.c
│ │ ├── lapacke_ssb_trans.c
│ │ ├── lapacke_ssp_nancheck.c
│ │ ├── lapacke_ssp_trans.c
│ │ ├── lapacke_sst_nancheck.
================================================
FILE CONTENTS
================================================
================================================
FILE: .cirrus.yml
================================================
macos_instance:
image: ghcr.io/cirruslabs/macos-monterey-xcode:latest
#task:
# name: AppleM1/LLVM
# compile_script:
# - brew install llvm
# - export PATH=/opt/homebrew/opt/llvm/bin:$PATH
# - export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
# - export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
# - make TARGET=VORTEX USE_OPENMP=1 CC=clang
#task:
# name: AppleM1/LLVM/ILP64
# compile_script:
# - brew install llvm
# - export PATH=/opt/homebrew/opt/llvm/bin:$PATH
# - export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
# - export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
# - make TARGET=VORTEX USE_OPENMP=1 CC=clang INTERFACE64=1
#task:
# name: AppleM1/LLVM/CMAKE
# compile_script:
# - brew install llvm
# - export PATH=/opt/homebrew/opt/llvm/bin:$PATH
# - export LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
# - export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
# - mkdir build
# - cd build
# - cmake -DTARGET=VORTEX -DCMAKE_C_COMPILER=clang -DBUILD_SHARED_LIBS=ON ..
# - make -j 4
#task:
# name: AppleM1/GCC/MAKE/OPENMP
# compile_script:
# - brew install gcc@11
# - export PATH=/opt/homebrew/bin:$PATH
# - export LDFLAGS="-L/opt/homebrew/lib"
# - export CPPFLAGS="-I/opt/homebrew/include"
# - make CC=gcc-11 FC=gfortran-11 USE_OPENMP=1
macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
task:
name: AppleM1/LLVM x86_64 xbuild
compile_script:
- #brew install llvm
- export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
- export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
- export #CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
- export ARCHS="i386 x86_64"
- export ARCHS_STANDARD="i386 x86_64"
- export ARCHS_STANDARD_32_64_BIT="i386 x86_64"
- export ARCHS_STANDARD_64_BIT=x86_64
- export ARCHS_STANDARD_INCLUDING_64_BIT="i386 x86_64"
- export ARCHS_UNIVERSAL_IPHONE_OS="i386 x86_64"
- export VALID_ARCHS="i386 x86_64"
- xcrun --sdk macosx --show-sdk-path
- xcodebuild -version
- export CC=/Applications/Xcode_26.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_26.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk -arch x86_64"
- make TARGET=CORE2 DYNAMIC_ARCH=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
always:
config_artifacts:
path: "*conf*"
type: text/plain
# lib_artifacts:
# path: "libopenblas*"
# type: application/octet-streamm
macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
task:
name: AppleM1/LLVM armv8-ios xbuild
compile_script:
- #brew install llvm
- export #PATH=/opt/homebrew/opt/llvm/bin:$PATH
- export #LDFLAGS="-L/opt/homebrew/opt/llvm/lib"
- export #CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
- export CC=/Applications/Xcode_26.0.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
- export CFLAGS="-O2 -unwindlib=none -Wno-macro-redefined -isysroot /Applications/Xcode_26.0.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS26.0.sdk -arch arm64 -miphoneos-version-min=10.0"
- xcrun --sdk iphoneos --show-sdk-path
- ls -l /Applications
- make TARGET=ARMV8 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 CROSS=1
always:
config_artifacts:
path: "*conf*"
type: text/plain
macos_instance:
image: ghcr.io/cirruslabs/macos-sonoma-xcode:latest
task:
name: AppleM1/LLVM armv7-androidndk xbuild
compile_script:
- brew install --cask android-ndk
- export ANDROID_NDK_HOME="/opt/homebrew/share/android-ndk"
- export CC=/opt/homebrew/share/android-ndk/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi23-clang
- make TARGET=ARMV7 ARM_SOFTFP_ABI=1 NUM_THREADS=32 HOSTCC=clang NOFORTRAN=1 RANLIB="ls -l"
always:
config_artifacts:
path: "*conf*"
type: text/plain
task:
name: NeoverseN1
arm_container:
image: node:latest
compile_script:
- make
task:
name: NeoverseN1-ILP64
arm_container:
image: node:latest
compile_script:
- make INTERFACE64=1
task:
name: NeoverseN1-OMP
arm_container:
image: node:latest
cpu: 8
compile_script:
- make USE_OPENMP=1
FreeBSD_task:
name: FreeBSD-gcc
freebsd_instance:
image_family: freebsd-14-3
install_script:
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
compile_script:
- ls -l /usr/local/lib
- gmake CC=gcc
FreeBSD_task:
name: freebsd-gcc-ilp64
freebsd_instance:
image_family: freebsd-14-3
install_script:
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
compile_script:
- ls -l /usr/local/lib
- gmake CC=gcc INTERFACE64=1
FreeBSD_task:
name: FreeBSD-clang-openmp
freebsd_instance:
image_family: freebsd-14-3
install_script:
- pkg update -f && pkg upgrade -y && pkg install -y gmake gcc
- ln -s /usr/local/lib/gcc14/libgfortran.so.5.0.0 /usr/lib/libgfortran.so
compile_script:
- gmake CC=clang FC=gfortran USE_OPENMP=1 CPP_THREAD_SAFETY_TEST=1
#task:
# name: Windows/LLVM16 --- too slow ---
# windows_container:
# image: cirrusci/windowsservercore:cmake-2021.12.07
# install_script:
# - choco list --localonly
# - choco install -y llvm
# - # choco install -y cmake --installargs '"ADD_CMAKE_TO_PATH=System"'
# - choco install -y ninja
# - refreshenv
# - cd "c:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Auxiliary/Build"
# - vcvarsall x64
# - cd "C:\Users\ContainerAdministrator\AppData\Local\Temp\cirrus-ci-build"
# - cmake -S . -B build -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_MT=mt -DCMAKE_BUILD_TYPE=Release
# - cd build
# - cmake --build .
# - ctest
================================================
FILE: .cirun.yml
================================================
# Self-Hosted Github Action Runners on AWS via Cirun.io
# Reference: https://docs.cirun.io/reference/yaml
runners:
- name: "aws-runner-graviton"
# Cloud Provider: AWS
cloud: "aws"
region: "us-east-1"
# Cheapest VM on AWS
instance_type: "c7g.large"
# Ubuntu-22.04, ami image
machine_image: "ami-0a0c8eebcdd6dcbd0"
preemptible: false
# Add this label in the "runs-on" param in .github/workflows/<workflow-name>.yml
# So that this runner is created for running the workflow
labels:
- "cirun-aws-runner-graviton"
================================================
FILE: .drone.yml
================================================
---
kind: pipeline
name: arm64_gcc_make
platform:
os: linux
arch: arm64
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: gcc
COMMON_FLAGS: 'DYNAMIC_ARCH=1 TARGET=ARMV8 NUM_THREADS=32'
commands:
- echo "MAKE_FLAGS:= $COMMON_FLAGS"
- apt-get update -y
- apt-get install -y make $CC gfortran perl
- $CC --version
- make QUIET_MAKE=1 $COMMON_FLAGS
- make -C test $COMMON_FLAGS
- make -C ctest $COMMON_FLAGS
- make -C utest $COMMON_FLAGS
---
kind: pipeline
name: arm32_gcc_make
platform:
os: linux
arch: arm
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: gcc
COMMON_FLAGS: 'DYNAMIC_ARCH=1 TARGET=ARMV6 NUM_THREADS=32'
commands:
- echo "MAKE_FLAGS:= $COMMON_FLAGS"
- apt-get update -y
- apt-get install -y make $CC gfortran perl
- $CC --version
- make QUIET_MAKE=1 $COMMON_FLAGS
- make -C test $COMMON_FLAGS
- make -C ctest $COMMON_FLAGS
- make -C utest $COMMON_FLAGS
---
kind: pipeline
name: arm64_clang_make
platform:
os: linux
arch: arm64
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: clang
COMMON_FLAGS: 'DYNAMIC_ARCH=1 TARGET=ARMV8 NUM_THREADS=32'
commands:
- echo "MAKE_FLAGS:= $COMMON_FLAGS"
- apt-get update -y
- apt-get install -y make $CC gfortran perl
- $CC --version
- make QUIET_MAKE=1 $COMMON_FLAGS
- make -C test $COMMON_FLAGS
- make -C ctest $COMMON_FLAGS
- make -C utest $COMMON_FLAGS
---
kind: pipeline
name: arm32_clang_cmake
platform:
os: linux
arch: arm
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: clang
CMAKE_FLAGS: '-DDYNAMIC_ARCH=1 -DTARGET=ARMV6 -DNUM_THREADS=32 -DNOFORTRAN=ON -DBUILD_WITHOUT_LAPACK=ON'
commands:
- echo "CMAKE_FLAGS:= $CMAKE_FLAGS"
- apt-get update -y
- apt-get install -y make $CC g++ perl cmake
- $CC --version
- mkdir build && cd build
- cmake $CMAKE_FLAGS ..
- make -j
- ctest -V
---
kind: pipeline
name: arm64_gcc_cmake
platform:
os: linux
arch: arm64
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: gcc
CMAKE_FLAGS: '-DDYNAMIC_ARCH=1 -DTARGET=ARMV8 -DNUM_THREADS=32 -DNOFORTRAN=ON -DBUILD_WITHOUT_LAPACK=ON'
commands:
- echo "CMAKE_FLAGS:= $CMAKE_FLAGS"
- apt-get update -y
- apt-get install -y make $CC g++ perl cmake
- $CC --version
- mkdir build && cd build
- cmake $CMAKE_FLAGS ..
- make -j
- ctest -V
---
kind: pipeline
name: arm64_clang_cmake
platform:
os: linux
arch: arm64
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: clang
CMAKE_FLAGS: '-DDYNAMIC_ARCH=1 -DTARGET=ARMV8 -DNUM_THREADS=32 -DNOFORTRAN=ON -DBUILD_WITHOUT_LAPACK=ON'
commands:
- echo "CMAKE_FLAGS:= $CMAKE_FLAGS"
- apt-get update -y
- apt-get install -y make $CC g++ perl cmake
- $CC --version
- mkdir build && cd build
- cmake $CMAKE_FLAGS ..
- make -j
- ctest -V
---
kind: pipeline
name: arm64_native_test
platform:
os: linux
arch: arm64
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: gcc
COMMON_FLAGS: 'USE_OPENMP=1'
commands:
- echo "MAKE_FLAGS:= $COMMON_FLAGS"
- apt-get update -y
- apt-get install -y make $CC gfortran perl python g++
- $CC --version
- make QUIET_MAKE=1 $COMMON_FLAGS
- make -C test $COMMON_FLAGS
- make -C ctest $COMMON_FLAGS
- make -C utest $COMMON_FLAGS
- make -C cpp_thread_test dgemm_tester
---
kind: pipeline
name: epyc_native_test
platform:
os: linux
arch: amd64
steps:
- name: Build and Test
image: ubuntu:18.04
environment:
CC: gcc
COMMON_FLAGS: 'USE_OPENMP=1'
commands:
- echo "MAKE_FLAGS:= $COMMON_FLAGS"
- apt-get update -y
- apt-get install -y make $CC gfortran perl python g++
- $CC --version
- make QUIET_MAKE=1 $COMMON_FLAGS
- make -C test $COMMON_FLAGS
- make -C ctest $COMMON_FLAGS
- make -C utest $COMMON_FLAGS
- make -C cpp_thread_test dgemm_tester
---
kind: pipeline
name: arm64_gcc10
platform:
os: linux
arch: arm64
steps:
- name: Build and Test
image: ubuntu:20.04
environment:
CC: gcc-10
FC: gfortran-10
COMMON_FLAGS: 'TARGET=ARMV8 DYNAMIC_ARCH=1'
commands:
- echo "MAKE_FLAGS:= $COMMON_FLAGS"
- apt-get update -y
- apt-get install -y make $CC gfortran-10 perl python g++
- $CC --version
- make QUIET_MAKE=1 $COMMON_FLAGS
- make -C utest $COMMON_FLAGS
- make -C test $COMMON_FLAGS
================================================
FILE: .github/workflows/apple_m.yml
================================================
name: apple m
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: macos-14
strategy:
fail-fast: false
matrix:
build: [cmake, make]
fortran: [gfortran]
openmp: [0, 1]
ilp64: [0, 1]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Print system information
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
cat /proc/cpuinfo
elif [ "$RUNNER_OS" == "macOS" ]; then
sysctl -a | grep machdep.cpu
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Install Dependencies
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
sudo apt-get install -y gfortran cmake ccache libtinfo5
elif [ "$RUNNER_OS" == "macOS" ]; then
# It looks like "gfortran" isn't working correctly unless "gcc" is re-installed.
brew reinstall gcc
brew install coreutils ccache
brew install llvm
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
# GNU make and cmake call the compilers differently. It looks like
# that causes the cache to mismatch. Keep the ccache for both build
# tools separate to avoid polluting each other.
key: ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}-${{ github.sha }}
# Restore a matching ccache cache entry. Prefer same branch and same Fortran compiler.
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.build }}-${{matrix.fortran }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.build }}-${{matrix.fortran }}
ccache-${{ runner.os }}-${{ matrix.build }}
- name: Configure ccache
run: |
if [ "${{ matrix.build }}" = "make" ]; then
# Add ccache to path
if [ "$RUNNER_OS" = "Linux" ]; then
echo "/usr/lib/ccache" >> $GITHUB_PATH
elif [ "$RUNNER_OS" = "macOS" ]; then
echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
echo "/opt/homebrew/opt/llvm/bin" >>$GITHUB_PATH
echo "" >>$GITHUB_PATH
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
fi
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota (5 GB).
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Add gfortran runtime to link path
if: matrix.build == 'make' && runner.os == 'macOS'
run: |
GFORTRAN_LIBDIR=$(gfortran -print-file-name=libgfortran.dylib | xargs dirname)
echo "Using gfortran runtime in $GFORTRAN_LIBDIR"
echo "LDFLAGS=-L/opt/homebrew/opt/llvm/lib -L$GFORTRAN_LIBDIR" >> $GITHUB_ENV
- name: Build OpenBLAS
run: |
export CPPFLAGS="-I/opt/homebrew/opt/llvm/include"
export CC="/opt/homebrew/opt/llvm/bin/clang"
export RANLIB=llvm-ranlib
case "${{ matrix.build }}" in
"make")
make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=${{matrix.openmp}} INTERFACE64=${{matrix.ilp64}} FC="ccache ${{ matrix.fortran }}"
;;
"cmake")
export LDFLAGS="$LDFLAGS -Wl,-ld_classic"
mkdir build && cd build
cmake -DDYNAMIC_ARCH=1 \
-DUSE_OPENMP=${{matrix.openmp}} \
-DOpenMP_Fortran_LIB_NAMES=omp \
-DINTERFACE64=${{matrix.ilp64}} \
-DNOFORTRAN=0 \
-DBUILD_WITHOUT_LAPACK=0 \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_Fortran_COMPILER=${{ matrix.fortran }} \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
..
cmake --build .
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
- name: Show ccache status
continue-on-error: true
run: ccache -s
- name: Run tests
timeout-minutes: 60
run: |
case "${{ matrix.build }}" in
"make")
MAKE_FLAGS='DYNAMIC_ARCH=1 USE_OPENMP=0'
echo "::group::Tests in 'test' directory"
make -C test $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
echo "::group::Tests in 'ctest' directory"
make -C ctest $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
echo "::group::Tests in 'utest' directory"
make -C utest $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
;;
"cmake")
cd build && ctest
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
================================================
FILE: .github/workflows/arm64_graviton.yml
================================================
name: arm64 graviton cirun
on:
push:
branches:
- develop
- release-**
pull_request:
branches:
- develop
- release-**
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: "cirun-aws-runner-graviton--${{ github.run_id }}"
strategy:
fail-fast: false
matrix:
fortran: [gfortran]
build: [cmake, make]
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Print system information
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
cat /proc/cpuinfo
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Install Dependencies
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
sudo apt update
sudo apt-get install -y gfortran cmake ccache libtinfo5
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
# GNU make and cmake call the compilers differently. It looks like
# that causes the cache to mismatch. Keep the ccache for both build
# tools separate to avoid polluting each other.
key: ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}-${{ github.sha }}
# Restore a matching ccache cache entry. Prefer same branch and same Fortran compiler.
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}
ccache-${{ runner.os }}-${{ matrix.build }}
- name: Configure ccache
run: |
if [ "${{ matrix.build }}" = "make" ]; then
# Add ccache to path
if [ "$RUNNER_OS" = "Linux" ]; then
echo "/usr/lib/ccache" >> $GITHUB_PATH
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
fi
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota (5 GB).
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Build OpenBLAS
run: |
case "${{ matrix.build }}" in
"make")
make -j$(nproc) DYNAMIC_ARCH=1 BUILD_BFLOAT16=1 USE_OPENMP=0 FC="ccache ${{ matrix.fortran }}"
;;
"cmake")
mkdir build && cd build
cmake -DDYNAMIC_ARCH=1 \
-DNOFORTRAN=0 \
-DBUILD_WITHOUT_LAPACK=0 \
-DBUILD_BFLOAT16=1 \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_Fortran_COMPILER=${{ matrix.fortran }} \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
..
cmake --build .
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
- name: Show ccache status
continue-on-error: true
run: ccache -s
- name: Run tests
timeout-minutes: 60
run: |
case "${{ matrix.build }}" in
"make")
MAKE_FLAGS='DYNAMIC_ARCH=1 USE_OPENMP=0'
echo "::group::Tests in 'test' directory"
make -C test $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
echo "::group::Tests in 'ctest' directory"
make -C ctest $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
echo "::group::Tests in 'utest' directory"
make -C utest $MAKE_FLAGS FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
;;
"cmake")
cd build && ctest
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
================================================
FILE: .github/workflows/c910v.yml
================================================
name: c910v qemu test
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
TEST:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-latest
env:
xuetie_toolchain: https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1698113812618
toolchain_file_name: Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.0-20231018.tar.gz
strategy:
fail-fast: false
matrix:
include:
- target: RISCV64_GENERIC
triple: riscv64-linux-gnu
apt_triple: riscv64-linux-gnu
opts: NO_SHARED=1 TARGET=RISCV64_GENERIC
- target: C910V
triple: riscv64-unknown-linux-gnu
apt_triple: riscv64-linux-gnu
opts: NO_SHARED=1 TARGET=C910V
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: install build deps
run: |
sudo apt-get update
sudo apt-get install autoconf automake autotools-dev ninja-build make ccache \
gcc-${{ matrix.apt_triple }} gfortran-${{ matrix.apt_triple }} libgomp1-riscv64-cross libglib2.0-dev
- name: checkout qemu
uses: actions/checkout@v4
with:
repository: XUANTIE-RV/qemu
path: qemu
ref: e0ace167effcd36d1f82c7ccb4522b3126011479 # xuantie-qemu-9.0
- name: build qemu
run: |
# Force use c910v qemu-user
wget https://github.com/revyos/qemu/commit/222729c7455784dd855216d7a2bec4bd8f2a6800.patch
cd qemu
patch -p1 < ../222729c7455784dd855216d7a2bec4bd8f2a6800.patch
export CXXFLAGS="-Wno-error"; export CFLAGS="-Wno-error"
./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=riscv64-linux-user --disable-system
make -j$(nproc)
make install
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.target }}
- name: Configure ccache
run: |
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: build OpenBLAS
run: |
wget ${xuetie_toolchain}/${toolchain_file_name}
tar -xvf ${toolchain_file_name} -C /opt
export PATH="/opt/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.8.0/bin:$PATH"
make CC='ccache ${{ matrix.triple }}-gcc -static' FC='ccache ${{ matrix.triple }}-gfortran -static' ${{ matrix.opts }} HOSTCC='ccache gcc' -j$(nproc)
- name: test
run: |
run_with_retry() {
local cmd="$1"
local time_out=10
local retries=10
local attempt=0
for ((i=1; i<=retries; i++)); do
attempt=$((i))
if timeout -s 12 --preserve-status $time_out $cmd; then
echo "Command succeeded on attempt $i."
return 0
else
local exit_code=$?
if [ $exit_code -eq 140 ]; then
echo "Attempt $i timed out (retrying...)"
time_out=$((time_out + 5))
else
echo "Attempt $i failed with exit code $exit_code. Aborting workflow."
exit $exit_code
fi
fi
done
echo "All $retries attempts failed, giving up."
echo "Final failure was due to timeout."
echo "Aborting workflow."
exit $exit_code
}
export PATH=$GITHUB_WORKSPACE/qemu-install/bin:$PATH
which qemu-riscv64
export QEMU_BIN=$(which qemu-riscv64)
run_with_retry "$QEMU_BIN ./utest/openblas_utest"
run_with_retry "$QEMU_BIN ./utest/openblas_utest_ext"
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xscblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xdcblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xccblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xzcblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xscblat2 < ./ctest/sin2
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xdcblat2 < ./ctest/din2
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xccblat2 < ./ctest/cin2
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xzcblat2 < ./ctest/zin2
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xscblat3 < ./ctest/sin3
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xdcblat3 < ./ctest/din3
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xccblat3 < ./ctest/cin3
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./ctest/xzcblat3 < ./ctest/zin3
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/sblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/dblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/cblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/zblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/sblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/dblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/cblat1
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/zblat1
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-riscv64 ./test/zblat3 < ./test/zblat3.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-riscv64 ./test/zblat3 < ./test/zblat3.dat
================================================
FILE: .github/workflows/codspeed-bench.yml
================================================
name: Run codspeed benchmarks
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
benchmarks:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
fortran: [gfortran]
build: [make]
pyver: ["3.12"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: ${{ matrix.pyver }}
- name: Print system information
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
cat /proc/cpuinfo
fi
- name: Install Dependencies
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
sudo apt-get update
sudo apt-get install -y gfortran cmake ccache libtinfo5
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
# GNU make and cmake call the compilers differently. It looks like
# that causes the cache to mismatch. Keep the ccache for both build
# tools separate to avoid polluting each other.
key: ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}-${{ github.sha }}
# Restore a matching ccache cache entry. Prefer same branch and same Fortran compiler.
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.build }}-${{ matrix.fortran }}
ccache-${{ runner.os }}-${{ matrix.build }}
- name: Write out the .pc
run: |
cd benchmark/pybench
cat > openblas.pc << EOF
libdir=${{ github.workspace }}
includedir= ${{ github.workspace }}
openblas_config= OpenBLAS 0.3.27 DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=64
version=0.0.99
extralib=-lm -lpthread -lgfortran -lquadmath -L${{ github.workspace }} -lopenblas
Name: openblas
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version
Version: ${version}
URL: https://github.com/xianyi/OpenBLAS
Libs: ${{ github.workspace }}/libopenblas.so -Wl,-rpath,${{ github.workspace }}
Libs.private: -lm -lpthread -lgfortran -lquadmath -L${{ github.workspace }} -lopenblas
Cflags: -I${{ github.workspace}}
EOF
cat openblas.pc
- name: Configure ccache
run: |
if [ "${{ matrix.build }}" = "make" ]; then
# Add ccache to path
if [ "$RUNNER_OS" = "Linux" ]; then
echo "/usr/lib/ccache" >> $GITHUB_PATH
elif [ "$RUNNER_OS" = "macOS" ]; then
echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
fi
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota (5 GB).
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Build OpenBLAS
run: |
case "${{ matrix.build }}" in
"make")
make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=0 FC="ccache ${{ matrix.fortran }}"
;;
"cmake")
mkdir build && cd build
cmake -DDYNAMIC_ARCH=1 \
-DNOFORTRAN=0 \
-DBUILD_WITHOUT_LAPACK=0 \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_Fortran_COMPILER=${{ matrix.fortran }} \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
..
cmake --build .
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
- name: Show ccache status
continue-on-error: true
run: ccache -s
- name: Install benchmark dependencies
run: pip install meson ninja numpy pytest pytest-codspeed --user
- name: Build the wrapper
run: |
cd benchmark/pybench
export PKG_CONFIG_PATH=$PWD
meson setup build --prefix=$PWD/build-install
meson install -C build
#
# sanity check
cd build/openblas_wrap
python -c'import _flapack; print(dir(_flapack))'
- name: Run benchmarks under pytest-benchmark
run: |
cd benchmark/pybench
pip install pytest-benchmark
export PYTHONPATH=$PWD/build-install/lib/python${{matrix.pyver}}/site-packages/
OPENBLAS_NUM_THREADS=1 pytest benchmarks/bench_blas.py -k 'gesdd'
- name: Run benchmarks
uses: CodSpeedHQ/action@v3
with:
token: ${{ secrets.CODSPEED_TOKEN }}
run: |
cd benchmark/pybench
export PYTHONPATH=$PWD/build-install/lib/python${{matrix.pyver}}/site-packages/
OPENBLAS_NUM_THREADS=1 pytest benchmarks/bench_blas.py --codspeed
================================================
FILE: .github/workflows/docs.yml
================================================
name: Publish docs via GitHub Pages
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
build:
name: Deploy docs
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install MkDocs and doc theme packages
run: pip install mkdocs mkdocs-material mkdocs-git-revision-date-localized-plugin mkdocs-mermaid2-plugin
- name: Build docs site
run: mkdocs build
# mkdocs gh-deploy command only builds to the top-level, hence deploying
# with this action instead.
# Deploys to http://www.openmathlib.org/OpenBLAS/docs/
- name: Deploy docs
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0
if: ${{ github.ref == 'refs/heads/develop' }}
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./site
destination_dir: docs/
================================================
FILE: .github/workflows/dynamic_arch.yml
================================================
name: continuous build
on: [push, pull_request, workflow_dispatch]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
if: "github.repository == 'OpenMathLib/OpenBLAS' || github.event_name == 'workflow_dispatch'"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, ubuntu-24.04-arm]
cc: [gcc, clang, clang-21]
fortran: [gfortran, flang]
build: [cmake, make]
exclude:
- os: macos-latest
cc: gcc
- os: macos-latest
cc: clang-21
- os: macos-latest
fortran: flang
- os: ubuntu-24.04-arm
fortran: flang
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Print system information
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
cat /proc/cpuinfo
elif [ "$RUNNER_OS" == "macOS" ]; then
sysctl -a | grep machdep.cpu
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Install Dependencies
run: |
if [ "$RUNNER_OS" == "Linux" ]; then
cat << EOF | sudo tee -a /etc/apt/apt.conf.d/01norecommend
APT::Install-Recommends "0";
APT::Install-Suggests "0";
EOF
sudo apt-get update
sudo apt-get install -y ccache
if [ "${{ matrix.cc }}" == "clang-21" ]; then
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 21
fi
if [ "${{ matrix.fortran }}" == "flang" ]; then
wget http://security.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb
sudo apt install ./libtinfo5_6.3-2ubuntu0.1_amd64.deb
else
sudo apt-get install -y ${{ matrix.fortran }}
fi
elif [ "$RUNNER_OS" == "macOS" ]; then
# It looks like "gfortran" isn't working correctly unless "gcc" is re-installed.
brew reinstall gcc
brew install coreutils ccache
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
# GNU make and cmake call the compilers differently. It looks like
# that causes the cache to mismatch. Keep the ccache for both build
# tools separate to avoid polluting each other.
key: ccache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.build }}-${{ matrix.cc }}-${{ matrix.fortran }}-${{ github.ref }}-${{ github.sha }}
# Restore a matching ccache cache entry. Prefer same branch and same Fortran compiler.
restore-keys: |
ccache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.build }}-${{ matrix.cc }}-${{ matrix.fortran }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.build }}-${{ matrix.cc }}-${{ matrix.fortran }}
ccache-${{ runner.os }}-${{ runner.arch }}-${{ matrix.build }}-${{ matrix.cc }}
- name: Configure ccache
run: |
if [ "${{ matrix.build }}" = "make" ]; then
# Add ccache to path
if [ "$RUNNER_OS" = "Linux" ]; then
echo "/usr/lib/ccache" >> $GITHUB_PATH
elif [ "$RUNNER_OS" = "macOS" ]; then
echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
else
echo "::error::$RUNNER_OS not supported"
exit 1
fi
fi
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota (5 GB).
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Add gfortran runtime to link path
if: matrix.build == 'make' && runner.os == 'macOS'
run: |
GFORTRAN_LIBDIR=$(gfortran -print-file-name=libgfortran.dylib | xargs dirname)
echo "Using gfortran runtime in $GFORTRAN_LIBDIR"
# Preserve whatever LDFLAGS may already contain
echo "LDFLAGS=${LDFLAGS:+$LDFLAGS }-L$GFORTRAN_LIBDIR" >> "$GITHUB_ENV"
- name: Build OpenBLAS
run: |
if [ "${{ matrix.fortran }}" = "flang" ]; then
# download and install classic flang
cd /usr/
sudo wget -nv https://github.com/flang-compiler/flang/releases/download/flang_20190329/flang-20190329-x86-70.tgz
sudo tar xf flang-20190329-x86-70.tgz
sudo rm flang-20190329-x86-70.tgz
cd -
fi
case "${{ matrix.build }}" in
"make")
make -j$(nproc) DYNAMIC_ARCH=1 USE_OPENMP=0 CC="ccache ${{ matrix.cc }}" FC="ccache ${{ matrix.fortran }}"
;;
"cmake")
mkdir build && cd build
cmake -DDYNAMIC_ARCH=1 \
-DNOFORTRAN=0 \
-DBUILD_WITHOUT_LAPACK=0 \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
-DCMAKE_Fortran_COMPILER=${{ matrix.fortran }} \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
..
cmake --build .
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
- name: Show ccache status
continue-on-error: true
run: ccache -s
- name: Run tests
timeout-minutes: 60
run: |
case "${{ matrix.build }}" in
"make")
MAKE_FLAGS='DYNAMIC_ARCH=1 USE_OPENMP=0'
echo "::group::Tests in 'test' directory"
make -C test $MAKE_FLAGS CC="ccache ${{ matrix.cc }}" FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
echo "::group::Tests in 'ctest' directory"
make -C ctest $MAKE_FLAGS CC="ccache ${{ matrix.cc }}" FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
echo "::group::Tests in 'utest' directory"
make -C utest $MAKE_FLAGS CC="ccache ${{ matrix.cc }}" FC="ccache ${{ matrix.fortran }}"
echo "::endgroup::"
;;
"cmake")
cd build && ctest
;;
*)
echo "::error::Configuration not supported"
exit 1
;;
esac
msys2:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
msystem: [UCRT64, MINGW32, CLANG64]
idx: [int32, int64]
build-type: [Release]
include:
- msystem: UCRT64
idx: int32
target-prefix: mingw-w64-ucrt-x86_64
fc-pkg: fc
- msystem: MINGW32
idx: int32
target-prefix: mingw-w64-i686
fc-pkg: fc
- msystem: CLANG64
idx: int32
target-prefix: mingw-w64-clang-x86_64
fc-pkg: fc
- msystem: UCRT64
idx: int64
idx64-flags: -DBINARY=64 -DINTERFACE64=1
target-prefix: mingw-w64-ucrt-x86_64
fc-pkg: fc
- msystem: CLANG64
idx: int64
idx64-flags: -DBINARY=64 -DINTERFACE64=1
target-prefix: mingw-w64-clang-x86_64
fc-pkg: fc
- msystem: UCRT64
idx: int32
target-prefix: mingw-w64-ucrt-x86_64
fc-pkg: fc
build-type: None
exclude:
- msystem: MINGW32
idx: int64
defaults:
run:
# Use MSYS2 bash as default shell
shell: msys2 {0}
env:
CHERE_INVOKING: 1
steps:
- name: Get CPU name
shell: pwsh
run : |
Get-CIMInstance -Class Win32_Processor | Select-Object -Property Name
- name: Install build dependencies
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.msystem }}
update: true
release: false # Use pre-installed version
install: >-
base-devel
${{ matrix.target-prefix }}-cc
${{ matrix.target-prefix }}-${{ matrix.fc-pkg }}
${{ matrix.target-prefix }}-cmake
${{ matrix.target-prefix }}-ninja
${{ matrix.target-prefix }}-ccache
- name: Checkout repository
uses: actions/checkout@v3
- name: Prepare ccache
# Get cache location of ccache
# Create key that is used in action/cache/restore and action/cache/save steps
id: ccache-prepare
run: |
echo "ccachedir=$(cygpath -m $(ccache -k cache_dir))" >> $GITHUB_OUTPUT
# We include the commit sha in the cache key, as new cache entries are
# only created if there is no existing entry for the key yet.
echo "key=ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ matrix.build-type }}-${{ github.ref }}-${{ github.sha }}" >> $GITHUB_OUTPUT
- name: Restore ccache
uses: actions/cache/restore@v3
with:
path: ${{ steps.ccache-prepare.outputs.ccachedir }}
key: ${{ steps.ccache-prepare.outputs.key }}
# Restore a matching ccache cache entry. Prefer same branch.
restore-keys: |
ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ matrix.build-type }}-${{ github.ref }}
ccache-msys2-${{ matrix.msystem }}-${{ matrix.idx }}-${{ matrix.build-type }}
- name: Configure ccache
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota.
run: |
which ccache
test -d ${{ steps.ccache-prepare.outputs.ccachedir }} || mkdir -p ${{ steps.ccache-prepare.outputs.ccachedir }}
echo "max_size = 250M" > ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
echo "compression = true" >> ${{ steps.ccache-prepare.outputs.ccachedir }}/ccache.conf
ccache -p
ccache -s
echo $HOME
cygpath -w $HOME
- name: Configure OpenBLAS
run: |
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=ON \
-DDYNAMIC_ARCH=ON \
-DUSE_THREAD=ON \
-DNUM_THREADS=64 \
-DTARGET=CORE2 \
${{ matrix.idx64-flags }} \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_Fortran_COMPILER_LAUNCHER=ccache \
..
- name: Build OpenBLAS
run: cd build && cmake --build .
- name: Show ccache status
continue-on-error: true
run: ccache -s
- name: Save ccache
# Save the cache after we are done (successfully) building
uses: actions/cache/save@v3
with:
path: ${{ steps.ccache-prepare.outputs.ccachedir }}
key: ${{ steps.ccache-prepare.outputs.key }}
- name: Run tests
id: run-ctest
timeout-minutes: 60
run: cd build && ctest
- name: Re-run tests
if: always() && (steps.run-ctest.outcome == 'failure')
timeout-minutes: 60
run: |
cd build
echo "::group::Re-run ctest"
ctest --rerun-failed --output-on-failure || true
echo "::endgroup::"
echo "::group::Log from these tests"
[ ! -f Testing/Temporary/LastTest.log ] || cat Testing/Temporary/LastTest.log
echo "::endgroup::"
cross_build:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- target: mips64el
triple: mips64el-linux-gnuabi64
opts: DYNAMIC_ARCH=1 TARGET=GENERIC
- target: riscv64
triple: riscv64-linux-gnu
opts: TARGET=RISCV64_GENERIC
- target: mipsel
triple: mipsel-linux-gnu
opts: TARGET=MIPS1004K
- target: alpha
triple: alpha-linux-gnu
opts: TARGET=EV4
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y ccache gcc-${{ matrix.triple }} gfortran-${{ matrix.triple }} libgomp1-${{ matrix.target }}-cross
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.target }}
- name: Configure ccache
run: |
# Limit the maximum size and switch on compression to avoid exceeding the total disk or cache quota (5 GB).
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Build OpenBLAS
run: |
make -j$(nproc) HOSTCC="ccache gcc" CC="ccache ${{ matrix.triple }}-gcc" FC="ccache ${{ matrix.triple }}-gfortran" ARCH=${{ matrix.target }} ${{ matrix.opts }}
neoverse_build:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y gcc gfortran make
- name: Build OpenBLAS
run: |
make -j${nproc}
make -j${nproc} lapack-test
================================================
FILE: .github/workflows/harmonyos.yml
================================================
name: harmonyos
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-latest
env:
OHOS_NDK_CMAKE: $GITHUB_WORKSPACE/ohos-sdk/linux/native/build-tools/cmake/bin/cmake
COMMON_CMAKE_OPTIONS: |
-DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/ohos-sdk/linux/native/build/cmake/ohos.toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=install \
-DCMAKE_BUILD_TYPE=Release \
steps:
- uses: actions/checkout@v4
- name: ndk-install
run: |
wget https://repo.huaweicloud.com/harmonyos/os/4.1.1-Release/ohos-sdk-windows_linux-public.tar.gz
tar -xf ohos-sdk-windows_linux-public.tar.gz
cd ohos-sdk/linux
unzip -q native-linux-x64-4.1.7.8-Release.zip
cd -
- name: build-armv8
run: |
mkdir build && cd build
${{ env.OHOS_NDK_CMAKE }} ${{ env.COMMON_CMAKE_OPTIONS }} -DOHOS_ARCH="arm64-v8a" \
-DTARGET=ARMV8 -DNOFORTRAN=1 ..
${{ env.OHOS_NDK_CMAKE }} --build . -j $(nproc)
================================================
FILE: .github/workflows/loongarch64.yml
================================================
name: loongarch64 qemu test
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
TEST:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
include:
- target: LOONGSONGENERIC
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSONGENERIC
- target: LOONGSON3R5
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON3R5
- target: LOONGSON2K1000
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON2K1000
- target: LA64_GENERIC
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA64_GENERIC
- target: LA464
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA464
- target: LA264
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA264
- target: DYNAMIC_ARCH
triple: loongarch64-linux-gnu
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=GENERIC
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install APT deps
run: |
sudo apt-get update && \
sudo apt-get install autoconf automake autotools-dev ninja-build make ccache qemu-user-static \
gcc-14-loongarch64-linux-gnu g++-14-loongarch64-linux-gnu gfortran-14-loongarch64-linux-gnu
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.target }}
- name: Configure ccache
run: |
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Disable utest dsdot:dsdot_n_1
run: |
echo -n > utest/test_dsdot.c
echo "Due to the current version of qemu causing utest cases to fail,"
echo "the utest dsdot:dsdot_n_1 have been temporarily disabled."
- name: Build OpenBLAS
run: |
make CC='ccache ${{ matrix.triple }}-gcc-14 -static' FC='ccache ${{ matrix.triple }}-gfortran-14 -static' \
RANLIB='ccache ${{ matrix.triple }}-gcc-ranlib-14' ${{ matrix.opts }} HOSTCC='ccache gcc' -j$(nproc)
- name: Test
run: |
qemu-loongarch64-static ./utest/openblas_utest
qemu-loongarch64-static ./utest/openblas_utest_ext
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xscblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xdcblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xccblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xzcblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xscblat2 < ./ctest/sin2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xdcblat2 < ./ctest/din2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xccblat2 < ./ctest/cin2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xzcblat2 < ./ctest/zin2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xscblat3 < ./ctest/sin3
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xdcblat3 < ./ctest/din3
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xccblat3 < ./ctest/cin3
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./ctest/xzcblat3 < ./ctest/zin3
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/sblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/dblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/cblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/zblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/sblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/dblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/cblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/zblat1
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64-static ./test/zblat3 < ./test/zblat3.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64-static ./test/zblat3 < ./test/zblat3.dat
================================================
FILE: .github/workflows/loongarch64_clang.yml
================================================
name: loongarch64 clang qemu test
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
TEST:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- target: LOONGSONGENERIC
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSONGENERIC
- target: LOONGSON3R5
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON3R5
- target: LOONGSON2K1000
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON2K1000
- target: LA64_GENERIC
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA64_GENERIC
- target: LA464
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA464
- target: LA264
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA264
- target: DYNAMIC_ARCH
opts: NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=GENERIC
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install libffi6
run: |
wget https://download.nvidia.com/cumulus/apt.cumulusnetworks.com/pool/upstream/libf/libffi/libffi6_3.2.1-9_amd64.deb
sudo dpkg -i libffi6_3.2.1-9_amd64.deb
- name: Install APT deps
run: |
sudo apt-get update
sudo apt-get install autoconf automake autotools-dev ninja-build make ccache libglib2.0-dev
- name: Download and install loongarch64-toolchain
run: |
wget https://github.com/XiWeiGu/loongarch64_toolchain/releases/download/V0.1/clang+llvm_8.0.1-6_amd64-linux-gnu_debian-10.tar.gz
wget https://github.com/XiWeiGu/loongarch64_toolchain/releases/download/V0.1/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3.tar.xz
tar -xf clang+llvm_8.0.1-6_amd64-linux-gnu_debian-10.tar.gz -C /opt
tar -xf loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3.tar.xz -C /opt
- name: Checkout qemu
uses: actions/checkout@v3
with:
repository: qemu/qemu
path: qemu
ref: master
- name: Install qemu
run: |
cd qemu
./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=loongarch64-linux-user --disable-system --static
make -j$(nproc)
make install
- name: Set env
run: |
echo "PATH=$GITHUB_WORKSPACE:/opt/clang+llvm_8.0.1-6_amd64-linux-gnu_debian-10/bin:/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3/bin:$PATH" >> $GITHUB_ENV
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.target }}
- name: Configure ccache
run: |
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: Disable utest dsdot:dsdot_n_1
run: |
echo -n > utest/test_dsdot.c
echo "Due to the qemu versions 7.2 causing utest cases to fail,"
echo "the utest dsdot:dsdot_n_1 have been temporarily disabled."
- name: Build OpenBLAS
run: make CC='ccache clang --target=loongarch64-linux-gnu --sysroot=/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3/loongarch64-linux-gnu/sysroot/ -static' FC='ccache loongarch64-linux-gnu-gfortran -static' HOSTCC='ccache clang' CROSS_SUFFIX=llvm- NO_SHARED=1 ${{ matrix.opts }} -j$(nproc)
- name: Test
run: |
export PATH=$GITHUB_WORKSPACE/qemu-install/bin/:$PATH
qemu-loongarch64 ./utest/openblas_utest
qemu-loongarch64 ./utest/openblas_utest_ext
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xscblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xdcblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xccblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xzcblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xscblat2 < ./ctest/sin2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xdcblat2 < ./ctest/din2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xccblat2 < ./ctest/cin2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xzcblat2 < ./ctest/zin2
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xscblat3 < ./ctest/sin3
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xdcblat3 < ./ctest/din3
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xccblat3 < ./ctest/cin3
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./ctest/xzcblat3 < ./ctest/zin3
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/sblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/dblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/cblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/zblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/sblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/dblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/cblat1
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/zblat1
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-loongarch64 ./test/zblat3 < ./test/zblat3.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-loongarch64 ./test/zblat3 < ./test/zblat3.dat
================================================
FILE: .github/workflows/mips64.yml
================================================
name: mips64 qemu test
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
TEST:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- target: MIPS64_GENERIC
triple: mips64el-linux-gnuabi64
opts: NO_SHARED=1 TARGET=MIPS64_GENERIC
- target: SICORTEX
triple: mips64el-linux-gnuabi64
opts: NO_SHARED=1 TARGET=SICORTEX
- target: I6400
triple: mipsisa64r6el-linux-gnuabi64
opts: NO_SHARED=1 TARGET=I6400
- target: P6600
triple: mipsisa64r6el-linux-gnuabi64
opts: NO_SHARED=1 TARGET=P6600
- target: I6500
triple: mipsisa64r6el-linux-gnuabi64
opts: NO_SHARED=1 TARGET=I6500
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: install build deps
run: |
sudo apt-get update
sudo apt-get install autoconf automake autotools-dev ninja-build make ccache \
gcc-${{ matrix.triple }} gfortran-${{ matrix.triple }} libgomp1-mips64el-cross libglib2.0-dev
- name: checkout qemu
uses: actions/checkout@v3
with:
repository: qemu/qemu
path: qemu
ref: ae35f033b874c627d81d51070187fbf55f0bf1a7
- name: build qemu
run: |
cd qemu
./configure --prefix=$GITHUB_WORKSPACE/qemu-install --target-list=mips64el-linux-user --disable-system
make -j$(nproc)
make install
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.target }}
- name: Configure ccache
run: |
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: build OpenBLAS
run: make CC='ccache ${{ matrix.triple }}-gcc -static' FC='ccache ${{ matrix.triple }}-gfortran -static' ${{ matrix.opts }} HOSTCC='ccache gcc' -j$(nproc)
- name: test
run: |
export PATH=$GITHUB_WORKSPACE/qemu-install/bin/:$PATH
qemu-mips64el ./utest/openblas_utest
qemu-mips64el ./utest/openblas_utest_ext
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xscblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xdcblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xccblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xzcblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xscblat2 < ./ctest/sin2
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xdcblat2 < ./ctest/din2
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xccblat2 < ./ctest/cin2
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xzcblat2 < ./ctest/zin2
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xscblat3 < ./ctest/sin3
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xdcblat3 < ./ctest/din3
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xccblat3 < ./ctest/cin3
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./ctest/xzcblat3 < ./ctest/zin3
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/sblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/dblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/cblat1
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/zblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/sblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/dblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/cblat1
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/zblat1
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT2.SUMM
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/sblat2 < ./test/sblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/dblat2 < ./test/dblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/cblat2 < ./test/cblat2.dat
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/zblat2 < ./test/zblat2.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 qemu-mips64el ./test/zblat3 < ./test/zblat3.dat
rm -f ./test/?BLAT3.SUMM
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/sblat3 < ./test/sblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/dblat3 < ./test/dblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/cblat3 < ./test/cblat3.dat
OPENBLAS_NUM_THREADS=2 qemu-mips64el ./test/zblat3 < ./test/zblat3.dat
================================================
FILE: .github/workflows/nightly-Homebrew-build.yml
================================================
# Only the "head" branch of the OpenBLAS package is tested
on:
push:
paths:
- '**/nightly-Homebrew-build.yml'
pull_request:
branches:
- develop
paths:
- '**/nightly-Homebrew-build.yml'
schedule:
- cron: 45 7 * * *
# This is 7:45 AM UTC daily, late at night in the USA
# Since push and pull_request will still always be building and testing the `develop` branch,
# it only makes sense to test if this file has been changed
name: Nightly-Homebrew-Build
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build-OpenBLAS-with-Homebrew:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: macos-latest
env:
DEVELOPER_DIR: /Applications/Xcode_11.4.1.app/Contents/Developer
HOMEBREW_DEVELOPER: "ON"
HOMEBREW_DISPLAY_INSTALL_TIMES: "ON"
HOMEBREW_NO_ANALYTICS: "ON"
HOMEBREW_NO_AUTO_UPDATE: "ON"
HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK: "ON"
HOMEBREW_NO_INSTALL_CLEANUP: "ON"
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "ON"
HOMEBREW_NO_INSTALL_FROM_API: "ON"
steps:
- name: Random delay for cron job
run: |
delay=$(( RANDOM % 600 ))
printf 'Delaying for %s seconds on event %s' ${delay} "${{ github.event_name }}"
sleep ${delay}
if: github.event_name == 'schedule'
- uses: actions/checkout@v2
# This isn't even needed, technically. Homebrew will get `develop` via git
- name: Update Homebrew
if: github.event_name != 'pull_request'
run: brew update || true
- name: Install prerequisites
run: brew install --fetch-HEAD --HEAD --only-dependencies --keep-tmp openblas
- name: Install and bottle OpenBLAS
run: brew install --fetch-HEAD --HEAD --build-bottle --keep-tmp openblas
# the HEAD flags tell Homebrew to build the develop branch fetch via git
- name: Create bottle
run: |
brew bottle -v openblas
mkdir bottles
mv *.bottle.tar.gz bottles
- name: Upload bottle
uses: actions/upload-artifact@v4
with:
name: openblas--HEAD.catalina.bottle.tar.gz
path: bottles
- name: Show linkage
run: brew linkage -v openblas
- name: Test openblas
run: brew test --HEAD --verbose openblas
- name: Audit openblas formula
run: |
brew audit --strict openblas
brew cat openblas
- name: Post logs on failure
if: failure()
run: brew gist-logs --with-hostname -v openblas
================================================
FILE: .github/workflows/riscv64_vector.yml
================================================
name: riscv64 zvl256b qemu test
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
TEST:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: ubuntu-latest
env:
triple: riscv64-unknown-linux-gnu
riscv_gnu_toolchain: https://github.com/riscv-collab/riscv-gnu-toolchain
riscv_gnu_toolchain_version: 15.1.0
riscv_gnu_toolchain_nightly_download_path: /releases/download/2025.08.29/riscv64-glibc-ubuntu-22.04-llvm-nightly-2025.08.29-nightly.tar.xz
strategy:
fail-fast: false
matrix:
include:
- target: RISCV64_ZVL128B
opts: TARGET=RISCV64_ZVL128B BINARY=64 ARCH=riscv64
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=128,elen=64
- target: RISCV64_ZVL256B
opts: TARGET=RISCV64_ZVL256B BINARY=64 ARCH=riscv64 BUILD_BFLOAT16=1 BUILD_HFLOAT16=1
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64,zfh=true,zvfh=true,zvfbfwma=true
- target: DYNAMIC_ARCH=1
opts: TARGET=RISCV64_GENERIC BINARY=64 ARCH=riscv64 DYNAMIC_ARCH=1
qemu_cpu: rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: install build deps
run: |
sudo apt-get update
sudo apt-get install autoconf automake autotools-dev ninja-build make \
libgomp1-riscv64-cross ccache qemu-kvm qemu-user libc6-riscv64-cross
wget ${riscv_gnu_toolchain}/${riscv_gnu_toolchain_nightly_download_path}
tar -xvf $(basename ${riscv_gnu_toolchain_nightly_download_path}) -C /opt
wget https://gist.github.com/martin-frbg/bb630e0de34978e578eeb496b1538d4e/raw/7fd8d971f327f7a517b8f5f7989479ff2b36f71f/qemu-riscv64-10.1-ubuntu24 -P /opt/riscv/bin -o riscv64-qemu
mv /opt/riscv/bin/qemu-riscv64-10.1-ubuntu24 /opt/riscv/bin/qemu-riscv64
chmod +x /opt/riscv/bin/qemu-riscv64
- name: Compilation cache
uses: actions/cache@v3
with:
path: ~/.ccache
key: ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}-${{ github.sha }}
restore-keys: |
ccache-${{ runner.os }}-${{ matrix.target }}-${{ github.ref }}
ccache-${{ runner.os }}-${{ matrix.target }}
- name: Configure ccache
run: |
test -d ~/.ccache || mkdir -p ~/.ccache
echo "max_size = 300M" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
ccache -s
- name: build OpenBLAS libs
run: |
export PATH="/opt/riscv/bin:$PATH"
make TARGET=${{ matrix.target }} CFLAGS="-DTARGET=${{ matrix.target }}" \
CC='ccache clang --rtlib=compiler-rt -target ${triple} --sysroot /opt/riscv/sysroot --gcc-toolchain=/opt/riscv/lib/gcc/riscv64-unknown-linux-gnu/${riscv_gnu_toolchain_version}/' \
AR='ccache ${triple}-ar' AS='ccache ${triple}-gcc' LD='ccache ${triple}-gcc' \
RANLIB='ccache ${triple}-ranlib' \
FC='ccache ${triple}-gfortran' ${{ matrix.opts }} \
HOSTCC=gcc HOSTFC=gfortran -j$(nproc)
- name: build OpenBLAS tests
run: |
export PATH="/opt/riscv/bin:$PATH"
make TARGET=${{ matrix.target }} CFLAGS="-DTARGET=${{ matrix.target }}" \
CC='ccache clang --rtlib=compiler-rt -target ${triple} --sysroot /opt/riscv/sysroot --gcc-toolchain=/opt/riscv/lib/gcc/riscv64-unknown-linux-gnu/${riscv_gnu_toolchain_version}/' \
AR='ccache ${triple}-ar' AS='ccache ${triple}-gcc' LD='ccache ${triple}-gcc' \
RANLIB='ccache ${triple}-ranlib' \
FC='ccache ${triple}-gfortran' ${{ matrix.opts }} \
HOSTCC=gcc HOSTFC=gfortran -j$(nproc) tests
- name: build lapack-netlib tests
working-directory: ./lapack-netlib/TESTING
run: |
export PATH="/opt/riscv/bin:$PATH"
make TARGET=${{ matrix.target }} CFLAGS="-DTARGET=${{ matrix.target }}" \
CC='${triple}-gcc' \
AR='ccache ${triple}-ar' AS='ccache ${triple}-gcc' LD='ccache ${triple}-gcc' \
RANLIB='ccache ${triple}-ranlib' \
FC='ccache ${triple}-gfortran' ${{ matrix.opts }} \
HOSTCC=gcc HOSTFC=gfortran -j$(nproc) \
LIN/xlintsts LIN/xlintstc LIN/xlintstd LIN/xlintstz LIN/xlintstrfs \
LIN/xlintstrfc LIN/xlintstrfd LIN/xlintstrfz LIN/xlintstds \
LIN/xlintstzc EIG/xeigtsts EIG/xeigtstc EIG/xeigtstd EIG/xeigtstz \
- name: OpenBLAS tests
shell: bash
run: |
export PATH="/opt/riscv/bin:$PATH"
export LD_LIBRARY_PATH=/opt/riscv/sysroot/lib
sudo ln -s /opt/riscv/sysroot/lib/ld-linux-riscv64-lp64d.so.1 /lib
export QEMU_CPU=${{ matrix.qemu_cpu }}
rm -rf ./test_out
mkdir -p ./test_out
run_test() { local DIR=$1; local CMD=$2; local DATA=$3; local OUTPUT="./test_out/$DIR.$CMD"; \
echo "`pwd`/$DIR/$CMD $DIR/$DATA" >> $OUTPUT; \
if [[ -z $DATA ]]; then qemu-riscv64 ./$DIR/$CMD |& tee $OUTPUT ; \
else qemu-riscv64 ./$DIR/$CMD < ./$DIR/$DATA |& tee $OUTPUT ; fi ; \
RV=$? ; if [[ $RV != 0 ]]; then echo "*** FAIL: nonzero exit code $RV" >> $OUTPUT ; fi \
}
run_test test cblat1 &
run_test test cblat2 cblat2.dat &
run_test test cblat3 cblat3.dat &
run_test test dblat1 &
run_test test dblat2 dblat2.dat &
run_test test dblat3 dblat3.dat &
run_test test sblat1 &
run_test test sblat2 sblat2.dat &
run_test test sblat3 sblat3.dat &
run_test test zblat1 &
run_test test zblat2 zblat2.dat &
run_test test zblat3 zblat3.dat &
run_test ctest xccblat1 &
run_test ctest xccblat2 cin2 &
run_test ctest xccblat3 cin3 &
run_test ctest xdcblat1 &
run_test ctest xdcblat2 din2 &
run_test ctest xdcblat3 din3 &
run_test ctest xscblat1 &
run_test ctest xscblat2 sin2 &
run_test ctest xscblat3 sin3 &
run_test ctest xzcblat1 &
run_test ctest xzcblat2 zin2 &
run_test ctest xzcblat3 zin3 &
wait
while IFS= read -r -d $'\0' LOG; do cat $LOG ; FAILURES=1 ; done < <(grep -lZ FAIL ./test_out/*)
if [[ ! -z $FAILURES ]]; then echo "==========" ; echo "== FAIL ==" ; echo "==========" ; echo ; exit 1 ; fi
if [ "${{matrix.target}}" == "RISCV64_ZVL256B" ]; then
qemu-riscv64 test/test_sbgemm &
qemu-riscv64 test/test_sbgemv &
qemu-riscv64 test/test_shgemm &
qemu-riscv64 test/test_shgemv &
qemu-riscv64 test/test_bgemm
fi
- name: netlib tests
shell: bash
run: |
: # these take a very long time
echo "Skipping netlib tests in CI"
exit 0
: # comment out exit above to enable the tests
: # probably we want to identify a subset to run in CI
export PATH="/opt/riscv/bin:$PATH"
export QEMU_CPU=${{ matrix.qemu_cpu }}
rm -rf ./test_out
mkdir -p ./test_out
run_test() { local OUTPUT="./test_out/$1"; local DATA="./lapack-netlib/TESTING/$2"; local CMD="./lapack-netlib/TESTING/$3"; \
echo "$4" >> $OUTPUT; \
echo "$CMD" >> $OUTPUT; \
qemu-riscv64 $CMD < $DATA |& tee $OUTPUT; \
RV=$? ; if [[ $RV != 0 ]]; then echo "*** FAIL: nonzero exit code $RV" >> $OUTPUT ; fi; \
if grep -q fail $OUTPUT ; then echo "*** FAIL: log contains 'fail'" >> $OUTPUT ; fi ; \
if grep -q rror $OUTPUT | grep -v -q "passed" | grep -v "largest error" ; then echo "*** FAIL: log contains 'error'" >> $OUTPUT ; fi \
}
run_test stest.out stest.in LIN/xlintsts "Testing REAL LAPACK linear equation routines" &
run_test ctest.out ctest.in LIN/xlintstc "Testing COMPLEX LAPACK linear equation routines" &
run_test dtest.out dtest.in LIN/xlintstd "Testing DOUBLE PRECISION LAPACK linear equation routines" &
run_test ztest.out ztest.in LIN/xlintstz "Testing COMPLEX16 LAPACK linear equation routines" &
run_test dstest.out dstest.in LIN/xlintstds "Testing SINGLE-DOUBLE PRECISION LAPACK prototype linear equation routines" &
run_test zctest.out zctest.in LIN/xlintstzc "Testing COMPLEX-COMPLEX16 LAPACK prototype linear equation routines" &
run_test stest_rfp.out stest_rfp.in LIN/xlintstrfs "Testing REAL LAPACK RFP prototype linear equation routines" &
run_test dtest_rfp.out dtest_rfp.in LIN/xlintstrfd "Testing DOUBLE PRECISION LAPACK RFP prototype linear equation routines" &
run_test ctest_rfp.out ctest_rfp.in LIN/xlintstrfc "Testing COMPLEX LAPACK RFP prototype linear equation routines" &
run_test ztest_rfp.out ztest_rfp.in LIN/xlintstrfz "Testing COMPLEX16 LAPACK RFP prototype linear equation routines" &
run_test snep.out nep.in EIG/xeigtsts "NEP - Testing Nonsymmetric Eigenvalue Problem routines" &
run_test ssep.out sep.in EIG/xeigtsts "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test sse2.out se2.in EIG/xeigtsts "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test ssvd.out svd.in EIG/xeigtsts "SVD - Testing Singular Value Decomposition routines" &
run_test sec.out sec.in EIG/xeigtsts "SEC - Testing REAL Eigen Condition Routines" &
run_test sed.out sed.in EIG/xeigtsts "SEV - Testing REAL Nonsymmetric Eigenvalue Driver" &
run_test sgg.out sgg.in EIG/xeigtsts "SGG - Testing REAL Nonsymmetric Generalized Eigenvalue Problem routines" &
run_test sgd.out sgd.in EIG/xeigtsts "SGD - Testing REAL Nonsymmetric Generalized Eigenvalue Problem driver routines" &
run_test ssb.out ssb.in EIG/xeigtsts "SSB - Testing REAL Symmetric Eigenvalue Problem routines" &
run_test ssg.out ssg.in EIG/xeigtsts "SSG - Testing REAL Symmetric Generalized Eigenvalue Problem routines" &
run_test sbal.out sbal.in EIG/xeigtsts "SGEBAL - Testing the balancing of a REAL general matrix" &
run_test sbak.out sbak.in EIG/xeigtsts "SGEBAK - Testing the back transformation of a REAL balanced matrix" &
run_test sgbal.out sgbal.in EIG/xeigtsts "SGGBAL - Testing the balancing of a pair of REAL general matrices" &
run_test sgbak.out sgbak.in EIG/xeigtsts "SGGBAK - Testing the back transformation of a pair of REAL balanced matrices" &
run_test sbb.out sbb.in EIG/xeigtsts "SBB - Testing banded Singular Value Decomposition routines" &
run_test sglm.out glm.in EIG/xeigtsts "GLM - Testing Generalized Linear Regression Model routines" &
run_test sgqr.out gqr.in EIG/xeigtsts "GQR - Testing Generalized QR and RQ factorization routines" &
run_test sgsv.out gsv.in EIG/xeigtsts "GSV - Testing Generalized Singular Value Decomposition routines" &
run_test scsd.out csd.in EIG/xeigtsts "CSD - Testing CS Decomposition routines" &
run_test slse.out lse.in EIG/xeigtsts "LSE - Testing Constrained Linear Least Squares routines" &
run_test cnep.out nep.in EIG/xeigtstc "NEP - Testing Nonsymmetric Eigenvalue Problem routines" &
run_test csep.out sep.in EIG/xeigtstc "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test cse2.out se2.in EIG/xeigtstc "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test csvd.out svd.in EIG/xeigtstc "SVD - Testing Singular Value Decomposition routines" &
run_test cec.out cec.in EIG/xeigtstc "CEC - Testing COMPLEX Eigen Condition Routines" &
run_test ced.out ced.in EIG/xeigtstc "CES - Testing COMPLEX Nonsymmetric Schur Form Driver" &
run_test cgg.out cgg.in EIG/xeigtstc "CGG - Testing COMPLEX Nonsymmetric Generalized Eigenvalue Problem routines" &
run_test cgd.out cgd.in EIG/xeigtstc "CGD - Testing COMPLEX Nonsymmetric Generalized Eigenvalue Problem driver routines" &
run_test csb.out csb.in EIG/xeigtstc "CHB - Testing Hermitian Eigenvalue Problem routines" &
run_test csg.out csg.in EIG/xeigtstc "CSG - Testing Symmetric Generalized Eigenvalue Problem routines" &
run_test cbal.out cbal.in EIG/xeigtstc "CGEBAL - Testing the balancing of a COMPLEX general matrix" &
run_test cbak.out cbak.in EIG/xeigtstc "CGEBAK - Testing the back transformation of a COMPLEX balanced matrix" &
run_test cgbal.out cgbal.in EIG/xeigtstc "CGGBAL - Testing the balancing of a pair of COMPLEX general matrices" &
run_test cgbak.out cgbak.in EIG/xeigtstc "CGGBAK - Testing the back transformation of a pair of COMPLEX balanced matrices" &
run_test cbb.out cbb.in EIG/xeigtstc "CBB - Testing banded Singular Value Decomposition routines" &
run_test cglm.out glm.in EIG/xeigtstc "GLM - Testing Generalized Linear Regression Model routines" &
run_test cgqr.out gqr.in EIG/xeigtstc "GQR - Testing Generalized QR and RQ factorization routines" &
run_test cgsv.out gsv.in EIG/xeigtstc "GSV - Testing Generalized Singular Value Decomposition routines" &
run_test ccsd.out csd.in EIG/xeigtstc "CSD - Testing CS Decomposition routines" &
run_test clse.out lse.in EIG/xeigtstc "LSE - Testing Constrained Linear Least Squares routines" &
run_test dnep.out nep.in EIG/xeigtstd "NEP - Testing Nonsymmetric Eigenvalue Problem routines" &
run_test dsep.out sep.in EIG/xeigtstd "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test dse2.out se2.in EIG/xeigtstd "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test dsvd.out svd.in EIG/xeigtstd "SVD - Testing Singular Value Decomposition routines" &
run_test dec.out dec.in EIG/xeigtstd "DEC - Testing DOUBLE PRECISION Eigen Condition Routines" &
run_test ded.out ded.in EIG/xeigtstd "DEV - Testing DOUBLE PRECISION Nonsymmetric Eigenvalue Driver" &
run_test dgg.out dgg.in EIG/xeigtstd "DGG - Testing DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem routines" &
run_test dgd.out dgd.in EIG/xeigtstd "DGD - Testing DOUBLE PRECISION Nonsymmetric Generalized Eigenvalue Problem driver routines" &
run_test dsb.out dsb.in EIG/xeigtstd "DSB - Testing DOUBLE PRECISION Symmetric Eigenvalue Problem routines" &
run_test dsg.out dsg.in EIG/xeigtstd "DSG - Testing DOUBLE PRECISION Symmetric Generalized Eigenvalue Problem routines" &
run_test dbal.out dbal.in EIG/xeigtstd "DGEBAL - Testing the balancing of a DOUBLE PRECISION general matrix" &
run_test dbak.out dbak.in EIG/xeigtstd "DGEBAK - Testing the back transformation of a DOUBLE PRECISION balanced matrix" &
run_test dgbal.out dgbal.in EIG/xeigtstd "DGGBAL - Testing the balancing of a pair of DOUBLE PRECISION general matrices" &
run_test dgbak.out dgbak.in EIG/xeigtstd "DGGBAK - Testing the back transformation of a pair of DOUBLE PRECISION balanced matrices" &
run_test dbb.out dbb.in EIG/xeigtstd "DBB - Testing banded Singular Value Decomposition routines" &
run_test dglm.out glm.in EIG/xeigtstd "GLM - Testing Generalized Linear Regression Model routines" &
run_test dgqr.out gqr.in EIG/xeigtstd "GQR - Testing Generalized QR and RQ factorization routines" &
run_test dgsv.out gsv.in EIG/xeigtstd "GSV - Testing Generalized Singular Value Decomposition routines" &
run_test dcsd.out csd.in EIG/xeigtstd "CSD - Testing CS Decomposition routines" &
run_test dlse.out lse.in EIG/xeigtstd "LSE - Testing Constrained Linear Least Squares routines" &
run_test znep.out nep.in EIG/xeigtstz "NEP - Testing Nonsymmetric Eigenvalue Problem routines" &
run_test zsep.out sep.in EIG/xeigtstz "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test zse2.out se2.in EIG/xeigtstz "SEP - Testing Symmetric Eigenvalue Problem routines" &
run_test zsvd.out svd.in EIG/xeigtstz "SVD - Testing Singular Value Decomposition routines" &
run_test zec.out zec.in EIG/xeigtstz "ZEC - Testing COMPLEX16 Eigen Condition Routines" &
run_test zed.out zed.in EIG/xeigtstz "ZES - Testing COMPLEX16 Nonsymmetric Schur Form Driver" &
run_test zgg.out zgg.in EIG/xeigtstz "ZGG - Testing COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem routines" &
run_test zgd.out zgd.in EIG/xeigtstz "ZGD - Testing COMPLEX16 Nonsymmetric Generalized Eigenvalue Problem driver routines" &
run_test zsb.out zsb.in EIG/xeigtstz "ZHB - Testing Hermitian Eigenvalue Problem routines" &
run_test zsg.out zsg.in EIG/xeigtstz "ZSG - Testing Symmetric Generalized Eigenvalue Problem routines" &
run_test zbal.out zbal.in EIG/xeigtstz "ZGEBAL - Testing the balancing of a COMPLEX16 general matrix" &
run_test zbak.out zbak.in EIG/xeigtstz "ZGEBAK - Testing the back transformation of a COMPLEX16 balanced matrix" &
run_test zgbal.out zgbal.in EIG/xeigtstz "ZGGBAL - Testing the balancing of a pair of COMPLEX general matrices" &
run_test zgbak.out zgbak.in EIG/xeigtstz "ZGGBAK - Testing the back transformation of a pair of COMPLEX16 balanced matrices" &
run_test zbb.out zbb.in EIG/xeigtstz "ZBB - Testing banded Singular Value Decomposition routines" &
run_test zglm.out glm.in EIG/xeigtstz "GLM - Testing Generalized Linear Regression Model routines" &
run_test zgqr.out gqr.in EIG/xeigtstz "GQR - Testing Generalized QR and RQ factorization routines" &
run_test zgsv.out gsv.in EIG/xeigtstz "GSV - Testing Generalized Singular Value Decomposition routines" &
run_test zcsd.out csd.in EIG/xeigtstz "CSD - Testing CS Decomposition routines" &
run_test zlse.out lse.in EIG/xeigtstz "LSE - Testing Constrained Linear Least Squares routines" &
wait
while IFS= read -r -d $'\0' LOG; do cat $LOG ; FAILURES=1 ; done < <(grep -lZ FAIL ./test_out/*)
python ./lapack-netlib/lapack_testing.py -d ./test_out -e > netlib_summary
TOTALS="$(grep 'ALL PRECISIONS' netlib_summary)"
NUMERICAL_ERRORS=-1
OTHER_ERRORS=-1
. <(awk '/ALL PRECISIONS/{printf "NUMERICAL_ERRORS=%s\nOTHER_ERRORS=%s\n", $5, $7}' netlib_summary
if (( NUMERICAL_ERRORS != 0 )) || (( OTHER_ERRORS != 0 )) ; then cat netlib_summary ; FAILURES=1 ; fi
if [[ ! -z $FAILURES ]]; then echo "==========" ; echo "== FAIL ==" ; echo "==========" ; echo ; exit 1 ; fi
================================================
FILE: .github/workflows/windows_arm64.yml
================================================
name: Windows ARM64 CI
on:
push:
branches:
- develop
pull_request:
branches:
- develop
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
if: "github.repository == 'OpenMathLib/OpenBLAS'"
runs-on: windows-11-arm
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install LLVM for Win-ARM64
shell: pwsh
run: |
Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.8/LLVM-20.1.8-woa64.exe -UseBasicParsing -OutFile LLVM-woa64.exe
Start-Process -FilePath ".\LLVM-woa64.exe" -ArgumentList "/S" -Wait
echo "C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
#dir "C:\Program Files\LLVM\include\flang"
#rmdir /Q /S "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/Llvm/ARM64"
- name: Install CMake and Ninja for Win-ARM64
shell: pwsh
run: |
Invoke-WebRequest https://github.com/Kitware/CMake/releases/download/v3.29.4/cmake-3.29.4-windows-arm64.msi -OutFile cmake-arm64.msi
Start-Process msiexec.exe -ArgumentList "/i cmake-arm64.msi /quiet /norestart" -Wait
echo "C:\Program Files\CMake\bin" >> $env:GITHUB_PATH
Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-winarm64.zip -OutFile ninja-winarm64.zip
Expand-Archive ninja-winarm64.zip -DestinationPath ninja
Copy-Item ninja\ninja.exe -Destination "C:\Windows\System32"
- name: Configure OpenBLAS
shell: cmd
run: |
CALL "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsarm64.bat"
set PATH=C:\Program Files\LLVM\bin;%PATH%
mkdir build
cd build
cmake .. -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
-DTARGET=ARMV8 ^
-DBINARY=64 ^
-DCMAKE_C_COMPILER=clang-cl ^
-DCMAKE_Fortran_COMPILER=flang-new ^
-DBUILD_SHARED_LIBS=ON ^
-DCMAKE_SYSTEM_PROCESSOR=arm64 ^
-DCMAKE_SYSTEM_NAME=Windows ^
-DCMAKE_INSTALL_PREFIX=C:/opt
- name: Build OpenBLAS
shell: cmd
run: |
cd build
ninja -j16
- name: Install OpenBLAS
shell: cmd
run: |
cd build
cmake --install .
- name: Run ctests
shell: pwsh
run: |
$env:PATH = "C:\opt\bin;$env:PATH"
cd build
ctest
================================================
FILE: .gitignore
================================================
*.obj
*.lib
*.dll
*.dylib
*.def
*.o
*.out
*.tmp
lapack-3.1.1
lapack-3.1.1.tgz
lapack-3.4.1
lapack-3.4.1.tgz
lapack-3.4.2
lapack-3.4.2.tgz
lapack-netlib/make.inc
lapack-netlib/SRC/la_constants.mod
lapack-netlib/SRC/la_xisnan.mod
lapack-netlib/TESTING/testing_results.txt
lapack-netlib/INSTALL/test*
lapack-netlib/TESTING/xeigtstc
lapack-netlib/TESTING/xeigtstd
lapack-netlib/TESTING/xeigtsts
lapack-netlib/TESTING/xeigtstz
lapack-netlib/TESTING/xlintstc
lapack-netlib/TESTING/xlintstd
lapack-netlib/TESTING/xlintstds
lapack-netlib/TESTING/xlintstrfc
lapack-netlib/TESTING/xlintstrfd
lapack-netlib/TESTING/xlintstrfs
lapack-netlib/TESTING/xlintstrfz
lapack-netlib/TESTING/xlintsts
lapack-netlib/TESTING/xlintstz
lapack-netlib/TESTING/xlintstzc
*.so
*.so.*
*.a
.svn
*~
lib.grd
nohup.out
config.h
config_kernel.h
Makefile.conf
Makefile.conf_last
Makefile_kernel.conf
config_last.h
getarch
getarch_2nd
utest/openblas_utest
utest/openblas_utest_ext
ctest/xccblat1
ctest/xccblat2
ctest/xccblat3
ctest/xccblat3_3m
ctest/xdcblat1
ctest/xdcblat2
ctest/xdcblat3
ctest/xdcblat3_3m
ctest/xscblat1
ctest/xscblat2
ctest/xscblat3
ctest/xscblat3_3m
ctest/xzcblat1
ctest/xzcblat2
ctest/xzcblat3
ctest/xzcblat3_3m
exports/linktest.c
exports/linux.def
kernel/setparam_*.c
kernel/kernel_*.h
test/CBLAT2.SUMM
test/CBLAT3.SUMM
test/CBLAT3_3M.SUMM
test/DBLAT2.SUMM
test/DBLAT3.SUMM
test/DBLAT3_3M.SUMM
test/SBLAT2.SUMM
test/SBLAT3.SUMM
test/SBLAT3_3M.SUMM
test/ZBLAT2.SUMM
test/ZBLAT3.SUMM
test/ZBLAT3_3M.SUMM
test/SHBLAT2.SUMM
test/SHBLAT3.SUMM
test/SBBLAT2.SUMM
test/SBBLAT3.SUMM
test/BBLAT2.SUMM
test/BBLAT3.SUMM
test/cblat1
test/cblat2
test/cblat3
test/cblat3_3m
test/dblat1
test/dblat2
test/dblat3
test/dblat3_3m
test/sblat1
test/sblat2
test/sblat3
test/sblat3_3m
test/test_shgemm
test/test_shgemv
test/test_sbgemm
test/test_sbgemv
test/test_bgemm
test/test_bgemv
test/zblat1
test/zblat2
test/zblat3
test/zblat3_3m
build
build.*
*.swp
benchmark/*.goto
benchmark/smallscaling
.vscode
CMakeCache.txt
CMakeFiles/*
.vscode
**/__pycache__
================================================
FILE: .travis.yml
================================================
# XXX: Precise is already deprecated, new default is Trusty.
# https://blog.travis-ci.com/2017-07-11-trusty-as-default-linux-is-coming
dist: focal
sudo: true
language: c
matrix:
include:
- &test-ubuntu
# os: linux
compiler: gcc
addons:
apt:
packages:
- gfortran
# before_script: &common-before
# - COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=NEHALEM NUM_THREADS=32"
# script:
# - make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
# - make -C test $COMMON_FLAGS $BTYPE
# - make -C ctest $COMMON_FLAGS $BTYPE
# - make -C utest $COMMON_FLAGS $BTYPE
# env:
# - TARGET_BOX=LINUX64
# - BTYPE="BINARY=64"
#
# - <<: *test-ubuntu
os: linux
arch: ppc64le
before_script: &common-before
- COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=POWER8 NUM_THREADS=32"
script:
- travis_wait 50 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
- make -C test $COMMON_FLAGS $BTYPE
- make -C ctest $COMMON_FLAGS $BTYPE
- make -C utest $COMMON_FLAGS $BTYPE
env:
# for matrix annotation only
- TARGET_BOX=PPC64LE_LINUX
- BTYPE="BINARY=64 USE_OPENMP=1"
- <<: *test-ubuntu
os: linux
arch: s390x
before_script:
- COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=Z13 NUM_THREADS=32"
- sudo apt-get install --only-upgrade binutils
env:
# for matrix annotation only
- TARGET_BOX=IBMZ_LINUX
- BTYPE="BINARY=64 USE_OPENMP=1"
- <<: *test-ubuntu
os: linux
dist: focal
arch: s390x
compiler: clang
before_script:
- COMMON_FLAGS="DYNAMIC_ARCH=1 TARGET=Z13 NUM_THREADS=32"
- sudo apt-get install --only-upgrade binutils
env:
# for matrix annotation only
- TARGET_BOX=IBMZ_LINUX
- BTYPE="BINARY=64 USE_OPENMP=0 CC=clang"
# - <<: *test-ubuntu
# env:
# - TARGET_BOX=LINUX64
# - BTYPE="BINARY=64 USE_OPENMP=1"
#
# - <<: *test-ubuntu
# env:
# - TARGET_BOX=LINUX64
# - BTYPE="BINARY=64 INTERFACE64=1"
#
# - <<: *test-ubuntu
# compiler: clang
# env:
# - TARGET_BOX=LINUX64
# - BTYPE="BINARY=64 CC=clang"
#
# - <<: *test-ubuntu
# compiler: clang
# env:
# - TARGET_BOX=LINUX64
# - BTYPE="BINARY=64 INTERFACE64=1 CC=clang"
#
# - <<: *test-ubuntu
# addons:
# apt:
# packages:
# - gcc-multilib
# - gfortran-multilib
# env:
# - TARGET_BOX=LINUX32
# - BTYPE="BINARY=32"
#
- os: linux
arch: ppc64le
dist: bionic
compiler: gcc
before_script:
- sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' -y
- sudo apt-get update
- sudo apt-get install gcc-9 gfortran-9 -y
script:
- travis_wait 50 make QUIET_MAKE=1 BINARY=64 USE_OPENMP=1 CC=gcc-9 FC=gfortran-9
- make -C test $COMMON_FLAGS $BTYPE
- make -C ctest $COMMON_FLAGS $BTYPE
- make -C utest $COMMON_FLAGS $BTYPE
env:
# for matrix annotation only
- TARGET_BOX=PPC64LE_LINUX_P9
- os: linux
arch: ppc64le
dist: bionic
compiler: gcc
before_script:
- sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' -y
- sudo apt-get update
- sudo apt-get install gcc-9 gfortran-9 -y
script:
- travis_wait 50 make QUIET_MAKE=1 BUILD_BFLOAT16=1 BINARY=64 USE_OPENMP=1 CC=gcc-9 FC=gfortran-9
- make -C test $COMMON_FLAGS $BTYPE
- make -C ctest $COMMON_FLAGS $BTYPE
- make -C utest $COMMON_FLAGS $BTYPE
env:
# for matrix annotation only
- TARGET_BOX=PPC64LE_LINUX_P9
# - os: linux
# compiler: gcc
# addons:
# apt:
# packages:
# - binutils-mingw-w64-x86-64
# - gcc-mingw-w64-x86-64
# - gfortran-mingw-w64-x86-64
# before_script: *common-before
# script:
# - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
# env:
# - TARGET_BOX=WIN64
# - BTYPE="BINARY=64 HOSTCC=gcc CC=x86_64-w64-mingw32-gcc FC=x86_64-w64-mingw32-gfortran"
#
# Build & test on Alpine Linux inside chroot, i.e. on system with musl libc.
# These jobs needs sudo, so Travis runs them on VM-based infrastructure
# which is slower than container-based infrastructure used for jobs
# that don't require sudo.
# - &test-alpine
# os: linux
# dist: trusty
# sudo: true
# language: minimal
# before_install:
# - "wget 'https://raw.githubusercontent.com/alpinelinux/alpine-chroot-install/v0.9.0/alpine-chroot-install' \
# && echo 'e5dfbbdc0c4b3363b99334510976c86bfa6cb251 alpine-chroot-install' | sha1sum -c || exit 1"
# - alpine() { /alpine/enter-chroot -u "$USER" "$@"; }
# install:
# - sudo sh alpine-chroot-install -p 'build-base gfortran perl linux-headers'
# before_script: *common-before
# script:
# # XXX: Disable some warnings for now to avoid exceeding Travis limit for log size.
# - alpine make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
# CFLAGS="-Wno-misleading-indentation -Wno-sign-conversion -Wno-incompatible-pointer-types"
# - alpine make -C test $COMMON_FLAGS $BTYPE
# - alpine make -C ctest $COMMON_FLAGS $BTYPE
# - alpine make -C utest $COMMON_FLAGS $BTYPE
# env:
# - TARGET_BOX=LINUX64_MUSL
# - BTYPE="BINARY=64"
# XXX: This job segfaults in TESTS OF THE COMPLEX LEVEL 3 BLAS,
# but only on Travis CI, cannot reproduce it elsewhere.
#- &test-alpine-openmp
# <<: *test-alpine
# env:
# - TARGET_BOX=LINUX64_MUSL
# - BTYPE="BINARY=64 USE_OPENMP=1"
# - <<: *test-alpine
# env:
# - TARGET_BOX=LINUX64_MUSL
# - BTYPE="BINARY=64 INTERFACE64=1"
#
# # Build with the same flags as Alpine do in OpenBLAS package.
# - <<: *test-alpine
# env:
# - TARGET_BOX=LINUX64_MUSL
# - BTYPE="BINARY=64 NO_AFFINITY=1 USE_OPENMP=0 NO_LAPACK=0 TARGET=CORE2"
# - &test-cmake
# os: linux
# compiler: clang
# addons:
# apt:
# packages:
# - gfortran
# - cmake
# dist: trusty
# sudo: true
# before_script:
# - COMMON_ARGS="-DTARGET=NEHALEM -DNUM_THREADS=32"
# script:
# - mkdir build
# - CONFIG=Release
# - cmake -Bbuild -H. $CMAKE_ARGS $COMMON_ARGS -DCMAKE_BUILD_TYPE=$CONFIG
# - cmake --build build --config $CONFIG -- -j2
# env:
# - CMAKE=1
# - <<: *test-cmake
# env:
# - CMAKE=1 CMAKE_ARGS="-DNOFORTRAN=1"
# - <<: *test-cmake
# compiler: gcc
# env:
# - CMAKE=1
# - &test-macos
# os: osx
# osx_image: xcode11.5
# before_script:
# - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
# script:
# - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
# env:
# - BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-9"
#
# - <<: *test-macos
# osx_image: xcode12
# before_script:
# - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
# - brew update
# script:
# - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
# env:
# - BTYPE="TARGET=HASWELL USE_OPENMP=1 BINARY=64 INTERFACE64=1 CC=gcc-10 FC=gfortran-10"
#
# - <<: *test-macos
# osx_image: xcode12
# before_script:
# - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
# - brew update
# script:
# - travis_wait 45 make QUIET_MAKE=1 $COMMON_FLAGS $BTYPE
# env:
# - BTYPE="TARGET=NEHALEM BINARY=64 INTERFACE64=1 FC=gfortran-10"
# - <<: *test-macos
# osx_image: xcode10
# env:
# - BTYPE="TARGET=NEHALEM BINARY=32 NOFORTRAN=1"
# - <<: *test-macos
# osx_image: xcode11.5
# before_script:
# - COMMON_FLAGS="DYNAMIC_ARCH=1 NUM_THREADS=32"
# - brew update
# env:
# - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
# - CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch arm64 -miphoneos-version-min=10.0"
# - CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
# - CFLAGS="-O2 -Wno-macro-redefined -isysroot /Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.5.sdk -arch arm64 -miphoneos-version-min=10.0"
# - BTYPE="TARGET=ARMV8 BINARY=64 HOSTCC=clang NOFORTRAN=1"
# - <<: *test-macos
# osx_image: xcode11.5
# env:
## - CC="/Applications/Xcode-10.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
## - CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-10.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -arch armv7 -miphoneos-version-min=5.1"
# - CC="/Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang"
# - CFLAGS="-O2 -mno-thumb -Wno-macro-redefined -isysroot /Applications/Xcode-11.5.GM.Seed.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.5.sdk -arch armv7 -miphoneos-version-min=5.1"
# - BTYPE="TARGET=ARMV7 HOSTCC=clang NOFORTRAN=1"
- &test-neoversen1
os: linux
arch: arm64
dist: focal
group: edge
virt: lxd
compiler: gcc
addons:
apt:
packages:
- gfortran
script:
- travis_wait 45 make && make lapack-test
env:
- TARGET_BOX=NEOVERSE_N1
- &test-neon1-gcc8
os: linux
arch: arm64
dist: focal
group: edge
virt: lxd
compiler: gcc
addons:
apt:
packages:
- gcc-8
- gfortran-8
script:
- travis_wait 45 make QUIET_MAKE=1 CC=gcc-8 FC=gfortran-8 DYNAMIC_ARCH=1
env:
- TARGET_BOX=NEOVERSE_N1-GCC8
# whitelist
branches:
only:
- master
- develop
notifications:
webhooks:
urls:
- https://webhooks.gitter.im/e/8a6e4470a0cebd090344
on_success: change # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always
================================================
FILE: BACKERS.md
================================================
Thank you for the support.
### [2019.12/2021.9] [Chan-Zuckerberg Foundation EOSS Initiative](https://chanzuckerberg.com/eoss/)
Between December 2019 and September 2021, development and maintaining of OpenBLAS was funded in part by the Chan-Zuckerberg Foundation in the context of two grants awarded to the NumPy Foundation and managed by NumFocus (Cycles 1 and 3 of the Essential Open Source Software for Science (EOSS) Initiative of the Chan-Zuckerberg Foundation)
### [2013.8] [Testbed for OpenBLAS project](https://www.bountysource.com/fundraisers/443-testbed-for-openblas-project)
https://www.bountysource.com/fundraisers/443-testbed-for-openblas-project/pledges
In chronological order:
* aeberspaecher
* fmolina
* saullocastro
* xianyi
* cuda
* carter
* StefanKarpinski
* staticfloat
* sebastien-villemot
* JeffBezanson
* ihnorton
* simonp0420
* andrioni
* Tim Holy
* ivarne
* johnmyleswhite
* traz
* Jean-Francis Roy
* bkalpert
* Anirban
* pgermain
* alexandre.lacoste.18
* foges
* ssam
* WestleyArgentum
* daniebmariani
* pjpuglia
* albarrentine
* Alexander Vogt
================================================
FILE: CMakeLists.txt
================================================
##
## Author: Hank Anderson <hank@statease.com>
##
cmake_minimum_required(VERSION 3.16.0)
set (CMAKE_ASM_SOURCE_FILE_EXTENSIONS "S")
project(OpenBLAS C ASM)
set(OpenBLAS_MAJOR_VERSION 0)
set(OpenBLAS_MINOR_VERSION 3)
set(OpenBLAS_PATCH_VERSION 31.dev)
set(OpenBLAS_VERSION "${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.${OpenBLAS_PATCH_VERSION}")
# Adhere to GNU filesystem layout conventions
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
#######
option(BUILD_WITHOUT_LAPACK "Do not build LAPACK and LAPACKE (Only BLAS or CBLAS)" OFF)
option(BUILD_WITHOUT_LAPACKE "Do not build the C interface to LAPACK)" OFF)
option(BUILD_LAPACK_DEPRECATED "When building LAPACK, include also some older, deprecated routines" ON)
set(LAPACK_STRLEN "" CACHE STRING "When building LAPACK, use this type (e.g. \"int\") for character lengths (defaults to size_t)")
option(BUILD_TESTING "Build LAPACK testsuite when building LAPACK" ON)
option(BUILD_BENCHMARKS "Build the collection of BLAS/LAPACK benchmarks" OFF)
option(C_LAPACK "Build LAPACK from C sources instead of the original Fortran" OFF)
option(BUILD_WITHOUT_CBLAS "Do not build the C interface (CBLAS) to the BLAS functions" OFF)
option(DYNAMIC_ARCH "Include support for multiple CPU targets, with automatic selection at runtime (x86/x86_64, aarch64, ppc or RISCV64-RVV1.0 only)" OFF)
option(DYNAMIC_OLDER "Include specific support for older x86 cpu models (Penryn,Dunnington,Atom,Nano,Opteron) with DYNAMIC_ARCH" OFF)
option(BUILD_RELAPACK "Build with ReLAPACK (recursive implementation of several LAPACK functions on top of standard LAPACK)" OFF)
option(USE_LOCKING "Use locks even in single-threaded builds to make them callable from multiple threads" OFF)
option(USE_PERL "Use the older PERL scripts for build preparation instead of universal shell scripts" OFF)
option(NO_WARMUP "Do not run a benchmark on each startup just to find the best location for the memory buffer" ON)
option(FIXED_LIBNAME "Use a non-versioned name for the library and no symbolic linking to variant names" OFF)
set(LIBNAMEPREFIX "" CACHE STRING "Add a prefix to the openblas part of the library name" )
set(LIBNAMESUFFIX "" CACHE STRING "Add a suffix after the openblas part of the library name" )
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
option(NO_AFFINITY "Disable support for CPU affinity masks to avoid binding processes from e.g. R or numpy/scipy to a single core" ON)
else()
set(NO_AFFINITY 1)
endif()
option(CPP_THREAD_SAFETY_TEST "Run a massively parallel DGEMM test to confirm thread safety of the library (requires OpenMP and about 1.3GB of RAM)" OFF)
option(CPP_THREAD_SAFETY_GEMV "Run a massively parallel DGEMV test to confirm thread safety of the library (requires OpenMP)" OFF)
option(BUILD_STATIC_LIBS "Build static library" OFF)
option(BUILD_SHARED_LIBS "Build shared library" OFF)
if(NOT BUILD_STATIC_LIBS AND NOT BUILD_SHARED_LIBS)
set(BUILD_STATIC_LIBS ON CACHE BOOL "Build static library" FORCE)
endif()
if((BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS) AND MSVC)
message(WARNING "Could not enable both BUILD_STATIC_LIBS and BUILD_SHARED_LIBS with MSVC, Disable BUILD_SHARED_LIBS")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build static library" FORCE)
endif()
# Add a prefix or suffix to all exported symbol names in the shared library.
# Avoids conflicts with other BLAS libraries, especially when using
# 64 bit integer interfaces in OpenBLAS.
set(SYMBOLPREFIX "" CACHE STRING "Add a prefix to all exported symbol names in the shared library to avoid conflicts with other BLAS libraries" )
set(SYMBOLSUFFIX "" CACHE STRING "Add a suffix to all exported symbol names in the shared library, e.g. _64 for INTERFACE64 builds" )
if (CMAKE_SYSTEM_NAME MATCHES "Windows" AND BUILD_SHARED_LIBS AND NOT ("${SYMBOLPREFIX}${SYMBOLSUFFIX}" STREQUAL ""))
set (DELETE_STATIC_LIBS "")
if (NOT BUILD_STATIC_LIBS)
message (STATUS "forcing build of a temporary static library for symbol renaming")
set (BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared library" FORCE)
set (BUILD_STATIC_LIBS ON CACHE BOOL "Build static library" FORCE)
set (DELETE_STATIC_LIBS file (REMOVE $<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.lib))
endif ()
endif()
#######
if(BUILD_WITHOUT_LAPACK)
set(NO_LAPACK 1)
set(NO_LAPACKE 1)
endif()
if (BUILD_WITHOUT_LAPACKE)
set(NO_LAPACKE 1)
endif()
if(BUILD_WITHOUT_CBLAS)
set(NO_CBLAS 1)
endif()
#######
if(MSVC AND MSVC_STATIC_CRT)
set(CompilerFlags
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_C_FLAGS
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_RELEASE
)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
endforeach()
endif()
message(WARNING "CMake support is experimental. It does not yet support all build options and may not produce the same Makefiles that OpenBLAS ships with.")
include("${PROJECT_SOURCE_DIR}/cmake/utils.cmake")
include("${PROJECT_SOURCE_DIR}/cmake/system.cmake")
string(FIND "${LIBNAMESUFFIX}" "${SUFFIX64_UNDERSCORE}" HAVE64)
if (${HAVE64} GREATER -1)
set(OpenBLAS_LIBNAME ${LIBNAMEPREFIX}openblas${LIBNAMESUFFIX})
else ()
set(OpenBLAS_LIBNAME ${LIBNAMEPREFIX}openblas${LIBNAMESUFFIX}${SUFFIX64_UNDERSCORE})
endif ()
set(BLASDIRS interface driver/level2 driver/level3 driver/others)
if (NOT DYNAMIC_ARCH)
list(APPEND BLASDIRS kernel)
endif ()
if (DEFINED SANITY_CHECK)
list(APPEND BLASDIRS reference)
endif ()
set(SUBDIRS ${BLASDIRS})
if (NOT NO_LAPACK)
if(BUILD_RELAPACK)
list(APPEND SUBDIRS relapack/src)
endif()
list(APPEND SUBDIRS lapack)
endif ()
if (NOT DEFINED BUILD_BFLOAT16)
set (BUILD_BFLOAT16 false)
endif ()
if (NOT DEFINED BUILD_HFLOAT16)
set (BUILD_HFLOAT16 false)
endif ()
# set which float types we want to build for
if (NOT DEFINED BUILD_SINGLE AND NOT DEFINED BUILD_DOUBLE AND NOT DEFINED BUILD_COMPLEX AND NOT DEFINED BUILD_COMPLEX16)
# if none are defined, build for all
# set(BUILD_BFLOAT16 true)
set(BUILD_SINGLE true)
set(BUILD_DOUBLE true)
set(BUILD_COMPLEX true)
set(BUILD_COMPLEX16 true)
endif ()
if (NOT DEFINED BUILD_MATGEN)
set(BUILD_MATGEN true)
endif()
set(FLOAT_TYPES "")
if (BUILD_SINGLE)
message(STATUS "Building Single Precision")
list(APPEND FLOAT_TYPES "SINGLE") # defines nothing
endif ()
if (BUILD_DOUBLE)
message(STATUS "Building Double Precision")
list(APPEND FLOAT_TYPES "DOUBLE") # defines DOUBLE
endif ()
if (BUILD_COMPLEX)
message(STATUS "Building Complex Precision")
list(APPEND FLOAT_TYPES "COMPLEX") # defines COMPLEX
endif ()
if (BUILD_COMPLEX16)
message(STATUS "Building Double Complex Precision")
list(APPEND FLOAT_TYPES "ZCOMPLEX") # defines COMPLEX and DOUBLE
endif ()
if (BUILD_BFLOAT16)
message(STATUS "Building Half Precision")
# list(APPEND FLOAT_TYPES "BFLOAT16") # defines nothing
endif ()
if (NOT DEFINED CORE OR "${CORE}" STREQUAL "UNKNOWN")
message(FATAL_ERROR "Detecting CPU failed. Please set TARGET explicitly, e.g. make TARGET=your_cpu_target. Please read README for details.")
endif ()
#Set default output directory
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
if(MSVC)
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/lib/Debug)
set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/lib/Release)
endif ()
# get obj vars into format that add_library likes: $<TARGET_OBJS:objlib> (see http://www.cmake.org/cmake/help/v3.0/command/add_library.html)
set(TARGET_OBJS "")
foreach (SUBDIR ${SUBDIRS})
add_subdirectory(${SUBDIR})
string(REPLACE "/" "_" subdir_obj ${SUBDIR})
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:${subdir_obj}>")
endforeach ()
# netlib:
# Can't just use lapack-netlib's CMake files, since they are set up to search for BLAS, build and install a binary. We just want to build a couple of lib files out of lapack and lapacke.
# Not using add_subdirectory here because lapack-netlib already has its own CMakeLists.txt. Instead include a cmake script with the sources we want.
if (NOT NO_LAPACK)
include("${PROJECT_SOURCE_DIR}/cmake/lapack.cmake")
if (NOT NO_LAPACKE)
include("${PROJECT_SOURCE_DIR}/cmake/lapacke.cmake")
endif ()
endif ()
# Only generate .def for dll on MSVC and always produce pdb files for debug and release
if(MSVC)
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_LESS 3.4)
set(OpenBLAS_DEF_FILE "${PROJECT_BINARY_DIR}/openblas.def")
endif()
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi")
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
endif()
if (${DYNAMIC_ARCH})
add_subdirectory(kernel)
foreach(TARGET_CORE ${DYNAMIC_CORE})
message("${TARGET_CORE}")
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:kernel_${TARGET_CORE}>")
endforeach()
endif ()
# add objects to the openblas lib
if(NOT NO_LAPACK)
add_library(LAPACK_OVERRIDES OBJECT ${LA_SOURCES})
if (USE_OPENMP AND (NOT NOFORTRAN))
# Disable OpenMP for LAPACK Fortran codes on Windows.
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(LAPACK_OVERRIDES OpenMP::OpenMP_Fortran)
endif()
endif()
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:LAPACK_OVERRIDES>")
endif()
if(NOT NO_LAPACKE)
add_library(LAPACKE OBJECT ${LAPACKE_SOURCES})
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:LAPACKE>")
endif()
#if(BUILD_RELAPACK)
# add_library(RELAPACK OBJECT ${RELA_SOURCES})
# list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:RELAPACK>")
#endif()
set(OpenBLAS_LIBS "")
if(BUILD_STATIC_LIBS)
add_library(${OpenBLAS_LIBNAME}_static STATIC ${TARGET_OBJS} ${OpenBLAS_DEF_FILE})
target_include_directories(${OpenBLAS_LIBNAME}_static INTERFACE $<INSTALL_INTERFACE:include/openblas${SUFFIX64}>)
list(APPEND OpenBLAS_LIBS ${OpenBLAS_LIBNAME}_static)
endif()
if(BUILD_SHARED_LIBS)
add_library(${OpenBLAS_LIBNAME}_shared SHARED ${TARGET_OBJS} ${OpenBLAS_DEF_FILE})
target_include_directories(${OpenBLAS_LIBNAME}_shared INTERFACE $<INSTALL_INTERFACE:include/openblas${SUFFIX64}>)
list(APPEND OpenBLAS_LIBS ${OpenBLAS_LIBNAME}_shared)
endif()
if(BUILD_STATIC_LIBS)
add_library(${OpenBLAS_LIBNAME} ALIAS ${OpenBLAS_LIBNAME}_static)
else()
add_library(${OpenBLAS_LIBNAME} ALIAS ${OpenBLAS_LIBNAME}_shared)
endif()
set_target_properties(${OpenBLAS_LIBS} PROPERTIES OUTPUT_NAME ${OpenBLAS_LIBNAME})
# Android needs to explicitly link against libm
if (${CMAKE_SYSTEM_NAME} MATCHES "AIX|Android|Linux|FreeBSD|OpenBSD|NetBSD|DragonFly|Darwin")
if(BUILD_STATIC_LIBS)
target_link_libraries(${OpenBLAS_LIBNAME}_static m)
endif()
if(BUILD_SHARED_LIBS)
target_link_libraries(${OpenBLAS_LIBNAME}_shared m)
endif()
endif()
if (USE_OPENMP)
if(BUILD_STATIC_LIBS)
if(NOFORTRAN)
target_link_libraries(${OpenBLAS_LIBNAME}_static OpenMP::OpenMP_C)
else()
target_link_libraries(${OpenBLAS_LIBNAME}_static OpenMP::OpenMP_C OpenMP::OpenMP_Fortran)
endif()
endif()
if(BUILD_SHARED_LIBS)
if(NOFORTRAN)
target_link_libraries(${OpenBLAS_LIBNAME}_shared OpenMP::OpenMP_C)
else()
target_link_libraries(${OpenBLAS_LIBNAME}_shared OpenMP::OpenMP_C OpenMP::OpenMP_Fortran)
endif()
endif()
endif()
# Fix "Argument list too long" for macOS - mostly seen with older OS versions on POWERPC or Intel CPUs
if(APPLE)
# Use response files
set(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)
# Always build static library first
if(BUILD_STATIC_LIBS)
set(STATIC_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${OpenBLAS_LIBNAME}.a")
else()
add_library(${OpenBLAS_LIBNAME}_static STATIC ${TARGET_OBJS} ${OpenBLAS_DEF_FILE})
set(STATIC_PATH "lib${OpenBLAS_LIBNAME}.a")
endif()
set(CREATE_STATIC_LIBRARY_COMMAND
"sh -c 'cat ${CMAKE_BINARY_DIR}/CMakeFiles/${OpenBLAS_LIBNAME}_static.dir/objects*.rsp | xargs -n 1024 ${CMAKE_AR} -ru ${STATIC_PATH} && exit 0' "
"sh -c '${CMAKE_AR} -rs ${STATIC_PATH} ${CMAKE_BINARY_DIR}/driver/others/CMakeFiles/driver_others.dir/xerbla.c.o && exit 0' ")
if(BUILD_SHARED_LIBS)
add_dependencies(${OpenBLAS_LIBNAME}_shared ${OpenBLAS_LIBNAME}_static)
set(SHARED_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libopenblas.${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}.dylib")
endif()
if(USE_OPENMP)
get_target_property(OMP_LIB OpenMP::OpenMP_C INTERFACE_LINK_LIBRARIES)
else()
set(OMP_LIB "")
endif()
if(NOT NOFORTRAN)
set(CMAKE_Fortran_USE_RESPONSE_FILE_FOR_OBJECTS 1)
set(CMAKE_Fortran_CREATE_STATIC_LIBRARY ${CREATE_STATIC_LIBRARY_COMMAND})
if(BUILD_SHARED_LIBS)
set(CMAKE_Fortran_CREATE_SHARED_LIBRARY
"sh -c 'echo \"\" | ${CMAKE_Fortran_COMPILER} -o dummy.o -c -x f95-cpp-input - '"
"sh -c '${CMAKE_Fortran_COMPILER} -fpic -shared -Wl,-all_load -Wl,-force_load,${STATIC_PATH} dummy.o -o ${SHARED_PATH} ${OMP_LIB}'")
endif()
else()
set(CMAKE_C_CREATE_STATIC_LIBRARY ${CREATE_STATIC_LIBRARY_COMMAND})
if(BUILD_SHARED_LIBS)
set(CMAKE_C_CREATE_SHARED_LIBRARY
"sh -c '${CMAKE_C_COMPILER} -fpic -shared -Wl,-all_load -Wl,-force_load,${STATIC_PATH} -o ${SHARED_PATH} ${OMP_LIB}'")
endif()
endif()
endif()
# Handle MSVC exports
if(MSVC AND BUILD_SHARED_LIBS)
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_LESS 3.4)
include("${PROJECT_SOURCE_DIR}/cmake/export.cmake")
else()
# Creates verbose .def file (51KB vs 18KB)
set_target_properties(${OpenBLAS_LIBNAME}_shared PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS true)
endif()
endif()
# Set output for libopenblas
set_target_properties( ${OpenBLAS_LIBS} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set_target_properties( ${OpenBLAS_LIBS} PROPERTIES LIBRARY_OUTPUT_NAME_DEBUG "${OpenBLAS_LIBNAME}_d")
set_target_properties( ${OpenBLAS_LIBS} PROPERTIES EXPORT_NAME "OpenBLAS")
foreach (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
set_target_properties( ${OpenBLAS_LIBS} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib/${OUTPUTCONFIG} )
set_target_properties( ${OpenBLAS_LIBS} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib/${OUTPUTCONFIG} )
set_target_properties( ${OpenBLAS_LIBS} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${PROJECT_BINARY_DIR}/lib/${OUTPUTCONFIG} )
endforeach()
enable_testing()
if (USE_THREAD)
# Add threading library to linker
find_package(Threads)
if (THREADS_HAVE_PTHREAD_ARG)
set_target_properties(${OpenBLAS_LIBS} PROPERTIES
COMPILE_OPTIONS "-pthread"
INTERFACE_COMPILE_OPTIONS "-pthread"
)
endif()
if(BUILD_STATIC_LIBS)
target_link_libraries(${OpenBLAS_LIBNAME}_static ${CMAKE_THREAD_LIBS_INIT})
endif()
if(BUILD_SHARED_LIBS)
target_link_libraries(${OpenBLAS_LIBNAME}_shared ${CMAKE_THREAD_LIBS_INIT})
endif()
endif()
#if (MSVC OR NOT NOFORTRAN)
if (NOT NO_CBLAS)
if (NOT ONLY_CBLAS)
# Broken without fortran on unix
add_subdirectory(utest)
endif()
endif()
if (NOT NOFORTRAN)
if (NOT ONLY_CBLAS)
# Build test and ctest
add_subdirectory(test)
endif()
if (BUILD_TESTING AND NOT BUILD_WITHOUT_LAPACK)
add_subdirectory(lapack-netlib/TESTING)
endif()
endif()
if(NOT NO_CBLAS)
if (NOT ONLY_CBLAS)
add_subdirectory(ctest)
endif()
endif()
if (CPP_THREAD_SAFETY_TEST OR CPP_THREAD_SAFETY_GEMV)
add_subdirectory(cpp_thread_test)
endif()
if (NOT FIXED_LIBNAME)
set_target_properties(${OpenBLAS_LIBS} PROPERTIES
VERSION ${OpenBLAS_MAJOR_VERSION}.${OpenBLAS_MINOR_VERSION}
SOVERSION ${OpenBLAS_MAJOR_VERSION}
)
endif()
if (BUILD_SHARED_LIBS AND BUILD_RELAPACK)
if (NOT MSVC)
target_link_libraries(${OpenBLAS_LIBNAME}_shared "-Wl,-allow-multiple-definition")
else()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /FORCE:MULTIPLE")
endif()
endif()
if (BUILD_SHARED_LIBS OR DELETE_STATIC_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")
if (NOT DEFINED ARCH)
set(ARCH_IN "x86_64")
else()
set(ARCH_IN ${ARCH})
endif()
if (${CORE} STREQUAL "generic")
set(ARCH_IN "GENERIC")
endif ()
if (NOT DEFINED EXPRECISION)
set(EXPRECISION_IN 0)
else()
set(EXPRECISION_IN ${EXPRECISION})
endif()
if (NOT DEFINED NO_CBLAS)
set(NO_CBLAS_IN 0)
else()
set(NO_CBLAS_IN ${NO_CBLAS})
endif()
if (NOT DEFINED NO_LAPACK)
set(NO_LAPACK_IN 0)
else()
set(NO_LAPACK_IN ${NO_LAPACK})
endif()
if (NOT DEFINED NO_LAPACKE)
set(NO_LAPACKE_IN 0)
else()
set(NO_LAPACKE_IN ${NO_LAPACKE})
endif()
if (NOT DEFINED NEED2UNDERSCORES)
set(NEED2UNDERSCORES_IN 0)
else()
set(NEED2UNDERSCORES_IN ${NEED2UNDERSCORES})
endif()
if (NOT DEFINED ONLY_CBLAS)
set(ONLY_CBLAS_IN 0)
else()
set(ONLY_CBLAS_IN ${ONLY_CBLAS})
endif()
if (NOT DEFINED BU)
set(BU _)
endif()
if (NOT ${SYMBOLPREFIX} STREQUAL "")
message(STATUS "adding prefix ${SYMBOLPREFIX} to names of exported symbols in ${OpenBLAS_LIBNAME}")
endif()
if (NOT ${SYMBOLSUFFIX} STREQUAL "")
message(STATUS "adding suffix ${SYMBOLSUFFIX} to names of exported symbols in ${OpenBLAS_LIBNAME}")
endif()
if (${BUILD_LAPACK_DEPRECATED})
set (BLD 1)
else ()
set (BLD 0)
endif()
if (${BUILD_BFLOAT16})
set (BBF16 1)
else ()
set (BBF16 0)
endif()
if (${BUILD_HFLOAT16})
set (BHF16 1)
else ()
set (BHF16 0)
endif()
if (${BUILD_SINGLE})
set (BS 1)
else ()
set (BS 0)
endif()
if (${BUILD_DOUBLE})
set (BD 1)
else ()
set (BD 0)
endif()
if (${BUILD_COMPLEX})
set (BC 1)
else ()
set (BC 0)
endif()
if (${BUILD_COMPLEX16})
set (BZ 1)
else ()
set (BZ 0)
endif()
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
if (CMAKE_BUILD_TYPE MATCHES "Debug")
set (CRTLIB msvcrtd)
set (PDBOPT -debug -pdb:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.pdb)
set (PDB_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
else ()
set (CRTLIB msvcrt)
set (PDBOPT "")
endif()
#if (USE_PERL)
message(STATUS "adding postbuild instruction to rename syms")
add_custom_command(TARGET ${OpenBLAS_LIBNAME}_static POST_BUILD
COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "win2k" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" "${SYMBOLPREFIX}" "${SYMBOLSUFFIX}" "${BLD}" "${BBF16}" "${BHF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/renamesyms.def
COMMAND ${CMAKE_C_COMPILER} ${CMAKE_C_FLAGS} -I${PROJECT_SOURCE_DIR} -I${PROJECT_BINARY_DIR} -c -o ${PROJECT_BINARY_DIR}/dllinit.o ${PROJECT_SOURCE_DIR}/exports/dllinit.c
COMMAND lld-link -nodefaultlib:libcmt -defaultlib:${CRTLIB} ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR}/renamesyms.def ${PROJECT_BINARY_DIR}/dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll.a ${PDBOPT}
#COMMAND lld-link -nodefaultlib:libcmt -defaultlib:msvcrt ${CMAKE_LINKER_FLAGS} -errorlimit:0 -def:${PROJECT_BINARY_DIR}/renamesyms.def ${PROJECT_BINARY_DIR}/dllinit.o $<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -wholearchive:$<TARGET_FILE:${OpenBLAS_LIBNAME}_static> -dll -out:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll -implib:$<TARGET_FILE_DIR:${OpenBLAS_LIBNAME}_static>/${OpenBLAS_LIBNAME}.dll.a
${REMOVE_STATIC_LIB} VERBATIM
)
#endif ()
else ()
if (NOT USE_PERL)
add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD
COMMAND sh ${PROJECT_SOURCE_DIR}/exports/gensymbol "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BHF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def
COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/${OpenBLAS_LIBNAME}.so
COMMENT "renaming symbols"
)
else()
add_custom_command(TARGET ${OpenBLAS_LIBNAME}_shared POST_BUILD
COMMAND perl ${PROJECT_SOURCE_DIR}/exports/gensymbol.pl "objcopy" "${ARCH}" "${BU}" "${EXPRECISION_IN}" "${NO_CBLAS_IN}" "${NO_LAPACK_IN}" "${NO_LAPACKE_IN}" "${NEED2UNDERSCORES_IN}" "${ONLY_CBLAS_IN}" \"${SYMBOLPREFIX}\" \"${SYMBOLSUFFIX}\" "${BLD}" "${BBF16}" "${BHF16}" "${BS}" "${BD}" "${BC}" "${BZ}" > ${PROJECT_BINARY_DIR}/objcopy.def
COMMAND objcopy --redefine-syms ${PROJECT_BINARY_DIR}/objcopy.def ${PROJECT_BINARY_DIR}/lib/lib${OpenBLAS_LIBNAME}.so
COMMENT "renaming symbols"
)
endif()
endif()
endif()
if (BUILD_BENCHMARKS)
#find_package(OpenMP REQUIRED)
file(GLOB SOURCES "benchmark/*.c")
if (NOT USE_OPENMP)
file(GLOB REMFILE "benchmark/smallscaling.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
endif()
if (BUILD_WITHOUT_LAPACK)
file(GLOB REMFILE "benchmark/cholesky.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/geev.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/gesv.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/getri.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/potrf.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/spmv.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/symv.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
file(GLOB REMFILE "benchmark/linpack.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
endif()
if (NOT USE_GEMM3M)
file(GLOB REMFILE "benchmark/gemm3m.c")
list(REMOVE_ITEM SOURCES ${REMFILE})
endif()
foreach(source ${SOURCES})
get_filename_component(name ${source} NAME_WE)
if ((NOT ${name} STREQUAL "zdot-intel") AND (NOT ${name} STREQUAL "cula_wrapper"))
set(defines DEFAULT COMPLEX DOUBLE "COMPLEX\;DOUBLE")
foreach(define ${defines})
set(target_name "benchmark_${name}")
if (NOT "${define}" STREQUAL "DEFAULT")
string(JOIN "_" define_str ${define})
set(target_name "${target_name}_${define_str}")
endif()
if ((NOT ${target_name} STREQUAL "benchmark_imax_COMPLEX") AND (NOT ${target_name} STREQUAL "benchmark_imax_COMPLEX_DOUBLE") AND
(NOT ${target_name} STREQUAL "benchmark_imin_COMPLEX") AND (NOT ${target_name} STREQUAL "benchmark_imin_COMPLEX_DOUBLE") AND
(NOT ${target_name} STREQUAL "benchmark_max_COMPLEX") AND (NOT ${target_name} STREQUAL "benchmark_max_COMPLEX_DOUBLE") AND
(NOT ${target_name} STREQUAL "benchmark_min_COMPLEX") AND (NOT ${target_name} STREQUAL "benchmark_min_COMPLEX_DOUBLE"))
add_executable(${target_name} ${source})
target_include_directories(${target_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(${target_name} ${OpenBLAS_LIBNAME} )
# target_link_libraries(${target_name} ${OpenBLAS_LIBNAME} OpenMP::OpenMP_C)
if (NOT "${define}" STREQUAL "DEFAULT")
target_compile_definitions(${target_name} PRIVATE ${define})
endif()
endif()
endforeach()
endif()
endforeach()
endif()
# Install project
# Install libraries
if(BUILD_SHARED_LIBS AND BUILD_STATIC_LIBS)
install(TARGETS ${OpenBLAS_LIBNAME}_shared
EXPORT "OpenBLAS${SUFFIX64}Targets"
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
install(TARGETS ${OpenBLAS_LIBNAME}_static
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
else()
install(TARGETS ${OpenBLAS_LIBS}
EXPORT "OpenBLAS${SUFFIX64}Targets"
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} )
endif()
# Install headers
set(CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/openblas${SUFFIX64})
set(CMAKE_INSTALL_FULL_INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
message(STATUS "Generating openblas_config.h in ${CMAKE_INSTALL_INCLUDEDIR}")
set(OPENBLAS_CONFIG_H ${CMAKE_BINARY_DIR}/openblas_config.h)
file(WRITE ${OPENBLAS_CONFIG_H} "#ifndef OPENBLAS_CONFIG_H\n")
file(APPEND ${OPENBLAS_CONFIG_H} "#define OPENBLAS_CONFIG_H\n")
file(STRINGS ${PROJECT_BINARY_DIR}/config.h __lines)
foreach(line ${__lines})
string(REPLACE "#define " "" line ${line})
file(APPEND ${OPENBLAS_CONFIG_H} "#define OPENBLAS_${line}\n")
endforeach()
file(APPEND ${OPENBLAS_CONFIG_H} "#define OPENBLAS_VERSION \"OpenBLAS ${OpenBLAS_VERSION}\"\n")
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/openblas_config_template.h OPENBLAS_CONFIG_TEMPLATE_H_CONTENTS)
file(APPEND ${OPENBLAS_CONFIG_H} "${OPENBLAS_CONFIG_TEMPLATE_H_CONTENTS}\n")
file(APPEND ${OPENBLAS_CONFIG_H} "#endif /* OPENBLAS_CONFIG_H */\n")
install (FILES ${OPENBLAS_CONFIG_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(NOT NOFORTRAN)
message(STATUS "Generating f77blas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
set(F77BLAS_H ${CMAKE_BINARY_DIR}/generated/f77blas.h)
file(WRITE ${F77BLAS_H} "#ifndef OPENBLAS_F77BLAS_H\n")
file(APPEND ${F77BLAS_H} "#define OPENBLAS_F77BLAS_H\n")
file(APPEND ${F77BLAS_H} "#include \"openblas_config.h\"\n")
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/common_interface.h COMMON_INTERFACE_H_CONTENTS)
file(APPEND ${F77BLAS_H} "${COMMON_INTERFACE_H_CONTENTS}\n")
file(APPEND ${F77BLAS_H} "#endif")
install (FILES ${F77BLAS_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif()
if(NOT NO_CBLAS)
message (STATUS "Generating cblas.h in ${CMAKE_INSTALL_INCLUDEDIR}")
set(CBLAS_H ${CMAKE_BINARY_DIR}/generated/cblas.h)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/cblas.h CBLAS_H_CONTENTS)
string(REPLACE "common" "openblas_config" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
if (NOT ${SYMBOLPREFIX} STREQUAL "")
string(REPLACE " cblas" " ${SYMBOLPREFIX}cblas" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
string(REPLACE " openblas" " ${SYMBOLPREFIX}openblas" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
string (REPLACE " ${SYMBOLPREFIX}openblas_complex" " openblas_complex" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
string(REPLACE " goto" " ${SYMBOLPREFIX}goto" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
endif()
if (NOT ${SYMBOLSUFFIX} STREQUAL "")
string(REGEX REPLACE "(cblas[^ (]*)" "\\1${SYMBOLSUFFIX}" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
string(REGEX REPLACE "(openblas[^ (]*)" "\\1${SYMBOLSUFFIX}" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
string(REGEX REPLACE "(openblas_complex[^ ]*)${SYMBOLSUFFIX}" "\\1" CBLAS_H_CONTENTS "${CBLAS_H_CONTENTS_NEW}")
string(REGEX REPLACE "(goto[^ (]*)" "\\1${SYMBOLSUFFIX}" CBLAS_H_CONTENTS_NEW "${CBLAS_H_CONTENTS}")
endif()
file(WRITE ${CBLAS_H} "${CBLAS_H_CONTENTS_NEW}")
install (FILES ${CBLAS_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif()
if(NOT NO_LAPACKE)
message (STATUS "Copying LAPACKE header files to ${CMAKE_INSTALL_INCLUDEDIR}")
if(BUILD_STATIC_LIBS)
add_dependencies( ${OpenBLAS_LIBNAME}_static genlapacke)
endif()
if(BUILD_SHARED_LIBS)
add_dependencies( ${OpenBLAS_LIBNAME}_shared genlapacke)
endif()
FILE(GLOB_RECURSE INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/*.h")
install (FILES ${INCLUDE_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
ADD_CUSTOM_TARGET(genlapacke
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke_mangling_with_flags.h.in "${CMAKE_BINARY_DIR}/lapacke_mangling.h"
)
install (FILES ${CMAKE_BINARY_DIR}/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if (NOT (x${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "x"))
message (STATUS "Generating lapacke.h in ${CMAKE_INSTALL_INCLUDEDIR}")
set(LAPACKE_H ${CMAKE_BINARY_DIR}/generated/lapacke.h)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapacke.h LAPACKE_H_CONTENTS)
if (NOT ${SYMBOLPREFIX} STREQUAL "")
string(REGEX REPLACE "(LAPACKE_*)" " ${SYMBOLPREFIX}\\1" LAPACKE_H_CONTENTS_NEW "${LAPACKE_H_CONTENTS}")
string(REPLACE "_ ${SYMBOLPREFIX}LAPACKE_H_" "_LAPACKE_H_" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW})
string(REPLACE "${SYMBOLPREFIX}LAPACKE_malloc" "LAPACKE_malloc" LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS})
string(REPLACE "${SYMBOLPREFIX}LAPACKE_free" "LAPACKE_free" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW})
set(LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS})
endif()
if (NOT ${SYMBOLSUFFIX} STREQUAL "")
string(REGEX REPLACE "(${SYMBOLPREFIX}LAPACKE_[a-z1-9]*[^ (]*)" "\\1${SYMBOLSUFFIX}" LAPACKE_H_CONTENTS_NEW "${LAPACKE_H_CONTENTS}")
string(REPLACE "#define${SYMBOLSUFFIX}" "#define" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW})
string(REPLACE "LAPACKE_malloc${SYMBOLSUFFIX}" "LAPACKE_malloc" LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS})
string(REPLACE "LAPACKE_free${SYMBOLSUFFIX}" "LAPACKE_free" LAPACKE_H_CONTENTS ${LAPACKE_H_CONTENTS_NEW})
set(LAPACKE_H_CONTENTS_NEW ${LAPACKE_H_CONTENTS})
endif()
file(WRITE ${LAPACKE_H} "${LAPACKE_H_CONTENTS_NEW}")
install (FILES ${LAPACKE_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
message (STATUS "Generating lapack.h in ${CMAKE_INSTALL_INCLUDEDIR}")
set(LAPACK_H ${CMAKE_BINARY_DIR}/generated/lapack.h)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/lapack-netlib/LAPACKE/include/lapack.h LAPACK_H_CONTENTS)
if (NOT ${SYMBOLPREFIX} STREQUAL "")
string(REGEX REPLACE "(LAPACK_[a-z1-9]*[ \(][.\)]*)" "${SYMBOLPREFIX}\\1" LAPACK_H_CONTENTS_NEW "${LAPACK_H_CONTENTS}")
set(LAPACK_H_CONTENTS ${LAPACK_H_CONTENTS_NEW})
endif()
if (NOT ${SYMBOLSUFFIX} STREQUAL "")
string(REGEX REPLACE "(${SYMBOLPREFIX}LAPACK_[a-z1-9]*)([ \(].\)" "\\1${SYMBOLSUFFIX}\\2" LAPACK_H_CONTENTS_NEW "${LAPACK_H_CONTENTS}")
endif()
file(WRITE ${LAPACK_H} "${LAPACK_H_CONTENTS_NEW}")
install (FILES ${LAPACK_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
endif()
endif()
# Install pkg-config files
configure_file(${PROJECT_SOURCE_DIR}/cmake/openblas.pc.in ${PROJECT_BINARY_DIR}/openblas${SUFFIX64}.pc @ONLY)
install (FILES ${PROJECT_BINARY_DIR}/openblas${SUFFIX64}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/)
set(PN OpenBLAS)
set(CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PN}${SUFFIX64}")
configure_package_config_file(cmake/${PN}Config.cmake.in
"${CMAKE_CURRENT_BINARY_DIR}/${PN}${SUFFIX64}Config.cmake"
INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR})
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PN}ConfigVersion.cmake
VERSION ${${PN}_VERSION}
COMPATIBILITY AnyNewerVersion)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PN}${SUFFIX64}Config.cmake
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PN}ConfigVersion.cmake
RENAME ${PN}${SUFFIX64}ConfigVersion.cmake
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
install(EXPORT "${PN}${SUFFIX64}Targets"
NAMESPACE "${PN}${SUFFIX64}::"
DESTINATION ${CMAKECONFIG_INSTALL_DIR})
================================================
FILE: CONTRIBUTORS.md
================================================
# Contributions to the OpenBLAS project
## Creator & Maintainer
* Zhang Xianyi <traits.zhang@gmail.com>
## Active Developers
* Wang Qian <traz0824@gmail.com>
* Optimize BLAS3 on ICT Loongson 3A.
* Optimize BLAS3 on Intel Sandy Bridge.
* Werner Saar <wernsaar@googlemail.com>
* [2013-03-04] Optimize AVX and FMA4 DGEMM on AMD Bulldozer
* [2013-04-27] Optimize AVX and FMA4 TRSM on AMD Bulldozer
* [2013-06-09] Optimize AVX and FMA4 SGEMM on AMD Bulldozer
* [2013-06-11] Optimize AVX and FMA4 ZGEMM on AMD Bulldozer
* [2013-06-12] Optimize AVX and FMA4 CGEMM on AMD Bulldozer
* [2013-06-16] Optimize dgemv_n kernel on AMD Bulldozer
* [2013-06-20] Optimize ddot, daxpy kernel on AMD Bulldozer
* [2013-06-21] Optimize dcopy kernel on AMD Bulldozer
* Porting and Optimization on ARM Cortex-A9
* Optimization on AMD Piledriver
* Optimization on Intel Haswell
* Chris Sidebottom <chris.sidebottom@arm.com>
* Optimizations and other improvements targeting AArch64
* Annop Wongwathanarat <annop.wongwathanarat@arm.com>
* Optimizations and other improvements targeting AArch64
* Anna Mayne <anna.mayne@arm.com>
* Optimizations and other improvements targeting AArch64
## Previous Developers
* Zaheer Chothia <zaheer.chothia@gmail.com>
* Improve the compatibility about complex number
* Build LAPACKE: C interface to LAPACK
* Improve the windows build.
* Chen Shaohu <huhumartinwar@gmail.com>
* Optimize GEMV on the Loongson 3A processor.
* Luo Wen
* Intern. Test Level-2 BLAS.
## Contributors
In chronological order:
* pipping <http://page.mi.fu-berlin.de/pipping>
* [2011-06-11] Make USE_OPENMP=0 disable openmp.
* Stefan Karpinski <stefan@karpinski.org>
* [2011-12-28] Fix a bug about SystemStubs on Mac OS X.
* Alexander Eberspächer <https://github.com/aeberspaecher>
* [2012-05-02] Add note on patch for segfaults on Linux kernel 2.6.32.
* Mike Nolta <mike@nolta.net>
* [2012-05-19] Fix building bug on FreeBSD and NetBSD.
* Sylvestre Ledru <https://github.com/sylvestre>
* [2012-07-01] Improve the detection of sparc. Fix building bug under
Hurd and kfreebsd.
* Jameson Nash <https://github.com/vtjnash>
* [2012-08-20] Provide support for passing CFLAGS, FFLAGS, PFLAGS, FPFLAGS to
make on the command line.
* Alexander Nasonov <alnsn@yandex.ru>
* [2012-11-10] Fix NetBSD build.
* Sébastien Villemot <sebastien@debian.org>
* [2012-11-14] Fix compilation with TARGET=GENERIC. Patch applied to Debian package.
* [2013-08-28] Avoid failure on qemu guests declaring an Athlon CPU without 3dnow!
* Kang-Che Sung <Explorer09@gmail.com>
* [2013-05-17] Fix typo in the document. Re-order the architecture list in getarch.c.
* Kenneth Hoste <kenneth.hoste@gmail.com>
* [2013-05-22] Adjust Makefile about downloading LAPACK source files.
* Lei WANG <https://github.com/wlbksy>
* [2013-05-22] Fix a bug about wget.
* Dan Luu <http://www.linkedin.com/in/danluu>
* [2013-06-30] Add Intel Haswell support (using sandybridge optimizations).
* grisuthedragon <https://github.com/grisuthedragon>
* [2013-07-11] create openblas_get_parallel to retrieve information which parallelization
model is used by OpenBLAS.
* Elliot Saba <staticfloat@gmail.com>
* [2013-07-22] Add in return value for `interface/trtri.c`
* Sébastien Fabbro <bicatali@gentoo.org>
* [2013-07-24] Modify makefile to respect user's LDFLAGS
* [2013-07-24] Add stack markings for GNU as arch-independent for assembler files
* Viral B. Shah <viral@mayin.org>
* [2013-08-21] Patch LAPACK XLASD4.f as discussed in JuliaLang/julia#2340
* Lars Buitinck <https://github.com/larsmans>
* [2013-08-28] get rid of the generated cblas_noconst.h file
* [2013-08-28] Missing threshold in gemm.c
* [2013-08-28] fix default prefix handling in makefiles
* yieldthought <https://github.com/yieldthought>
* [2013-10-08] Remove -Wl,--retain-symbols-file from dynamic link line to fix tool support
* Keno Fischer <https://github.com/loladiro>
* [2013-10-23] Use FC instead of CC to link the dynamic library on OS X
* Christopher Meng <cickumqt@gmail.com>
* [2013-12-09] Add DESTDIR support for easier building on RPM based distros.
Use install command instead of cp to install files with permissions control.
* Lucas Beyer <lucasb.eyer.be@gmail.com>
* [2013-12-10] Added support for NO_SHARED in make install.
* carlkl <https://github.com/carlkl>
* [2013-12-13] Fixed LAPACKE building bug on Windows
* Isaac Dunham <https://github.com/idunham>
* [2014-08-03] Fixed link error on Linux/musl
* Dave Nuechterlein
* [2014-10-10] trmm and sgemm kernels (optimized for APM's X-Gene 1).
ARMv8 support.
* Jerome Robert <jeromerobert@gmx.com>
* [2015-01-01] Speed-up small `ger` and `gemv` using stack allocation (bug #478)
* [2015-12-23] `stack_check` in `gemv.c` (bug #722)
* [2015-12-28] Allow to force the number of parallel make job
* [2015-12-28] Fix detection of AMD E2-3200 detection
* [2015-12-31] Let `make MAX_STACK_ALLOC=0` do what expected
* [2016-01-19] Disable multi-threading in `ger` and `swap` for small matrices (bug #731)
* [2016-01-24] Use `GEMM_MULTITHREAD_THRESHOLD` as a number of ops (bug #742)
* [2016-01-26] Let `openblas_get_num_threads` return the number of active threads (bug #760)
* [2016-01-30] Speed-up small `zger`, `zgemv`, `ztrmv` using stack allocation (bug #727)
* Dan Kortschak
* [2015-01-07] Added test for drotmg bug #484.
* Ton van den Heuvel <https://github.com/ton>
* [2015-03-18] Fix race condition during shutdown causing a crash in gotoblas_set_affinity().
* Martin Koehler <https://github.com/grisuthedragon/>
* [2015-09-07] Improved imatcopy
* Ashwin Sekhar T K <https://github.com/ashwinyes/>
* [2015-11-09] Assembly kernels for Cortex-A57 (ARMv8)
* [2015-11-20] lapack-test fixes for Cortex-A57
* [2016-03-14] Additional functional Assembly Kernels for Cortex-A57
* [2016-03-14] Optimize Dgemm 4x4 for Cortex-A57
* theoractice <https://github.com/theoractice/>
* [2016-03-20] Fix compiler error in VisualStudio with CMake
* [2016-03-22] Fix access violation on Windows while static linking
* Paul Mustière <https://github.com/buffer51/>
* [2016-02-04] Fix Android build on ARMV7
* [2016-04-26] Android build with LAPACK for ARMV7 & ARMV8
* Shivraj Patil <https://github.com/sva-img/>
* [2016-05-03] DGEMM optimization for MIPS P5600 and I6400 using MSA
* Kaustubh Raste <https://github.com/ksraste/>
* [2016-05-09] DTRSM optimization for MIPS P5600 and I6400 using MSA
* [2016-05-20] STRSM optimization for MIPS P5600 and I6400 using MSA
* Abdelrauf <https://github.com/quickwritereader>
* [2017-01-01] dgemm and dtrmm kernels for IBM z13
* [2017-02-26] ztrmm kernel for IBM z13
* [2017-03-13] strmm and ctrmm kernel for IBM z13
* [2017-09-01] initial Blas Level-1,2 (double precision) for IBM z13
* [2018-03-07] added missing Blas Level 1-2 (double precision) simd codes
* [2019-02-01] added missing Blas Level-1,2 (single precision) simd codes
* [2019-03-14] power9 dgemm/dtrmm kernel
* [2019-04-29] power9 sgemm/strmm kernel
* Jiachen Wang <https://github.com/wjc404>
* [2019-07-29] optimize AVX2 DGEMM
* [2019-10-20] AVX512 DGEMM kernel (4x8)
* [2019-11-06] optimize AVX512 SGEMM
* [2019-11-12] AVX512 CGEMM & ZGEMM kernels
* [2019-12-23] optimize AVX2 CGEMM and ZGEMM
* [2019-12-30] AVX2 CGEMM3M & ZGEMM3M kernels
* [2020-01-07] optimize AVX2 SGEMM and STRMM
* Rajalakshmi Srinivasaraghavan <https://github.com/RajalakshmiSR>
* [2020-04-15] Half-precision GEMM for bfloat16
* Marius Hillenbrand <https://github.com/mhillenibm>
* [2020-05-12] Revise dynamic architecture detection for IBM z
* [2020-05-12] Add new sgemm and strmm kernel for IBM z14
* [2020-09-07] Fix builds with clang on IBM z, including dynamic architecture support
* Danfeng Zhang <https://github.com/craft-zhang>
* [2020-05-20] Improve performance of SGEMM and STRMM on Arm Cortex-A53
* PingTouGe Semiconductor Co., Ltd.
* [2020-10] Add RISC-V Vector (0.7.1) support. Optimize BLAS kernels for Xuantie C910
* Jake Arkinstall <https://github.com/jake-arkinstall>
* [2021-02-10] Remove in-source configure_file to enable builds in read-only contexts (issue #3100, PR #3101)
* River Dillon <oss@outerpassage.net>
* [2021-07-10] fix compilation with musl libc
* Bine Brank <https://github.com/binebrank>
* [2021-10-27] Add vector-length-agnostic DGEMM kernels for Arm SVE
* [2021-11-20] Vector-length-agnostic Arm SVE copy routines for DGEMM, DTRMM, DSYMM
* [2021-11-12] SVE kernels for SGEMM, STRMM and corresponding SVE copy functions
* [2022-01-06] SVE kernels for CGEMM, ZGEMM, CTRMM, ZTRMM and corresponding SVE copy functions
* [2022-01-18] SVE kernels and copy functions for TRSM
* Ilya Kurdyukov <https://github.com/ilyakurdyukov>
* [2021-02-21] Add basic support for the Elbrus E2000 architecture
* PLCT Lab, Institute of Software Chinese Academy of Sciences
* [2022-03] Support RISC-V Vector Intrinisc 1.0 version.
* Pablo Romero <https://github.com/pablorcum>
* [2022-08] Fix building from sources for QNX
* Mark Seminatore <https://github.com/mseminatore>
* [2023-11-09] Improve Windows threading performance scaling
* [2024-02-09] Introduce MT_TRACE facility and improve code consistency
* Dirreke <https://github.com/mseminatore>
* [2024-01-16] Add basic support for the CSKY architecture
* Christopher Daley <https://github.com/cdaley>
* [2024-01-24] Optimize GEMV forwarding on ARM64 systems
* Aniket P. Garade <https://github.com/garadeaniket> Sushil Pratap Singh <https://github.com/SushilPratap04> Juliya James <https://github.com/Juliya32>
* [2024-12-13] Optimized swap and rot Level-1 BLAS routines with ARM SVE
* Annop Wongwathanarat <annop.wongwathanarat@arm.com>
* [2025-01-10] Add thread throttling profile for SGEMM on NEOVERSEV1
* [2025-01-21] Optimize gemv_t_sve_v1x3 kernel
* [2025-02-26] Add sbgemv_t_bfdot kernel
* [2025-03-12] Fix aarch64 sbgemv_t compilation error for GCC < 13
* [2025-03-12] Optimize aarch64 sgemm_ncopy
* Marek Michalowski <marek.michalowski@arm.com>
* [2025-01-21] Add thread throttling profile for SGEMV on `NEOVERSEV1`
* [2025-02-18] Add thread throttling profile for SGEMM on `NEOVERSEV2`
* [2025-02-19] Add thread throttling profile for SGEMV on `NEOVERSEV2`
* Ye Tao <ye.tao@arm.com>
* [2025-02-03] Optimize SBGEMM kernel on NEOVERSEV1
* [2025-02-27] Add sbgemv_n_neon kernel
* [2025-05-17] Impl prototype of BGEMM inferface
* Abhishek Kumar <https://github.com/abhishek-iitmadras>
* [2025-04-22] Optimise dot kernel for NEOVERSE V1
* [2025-07-23] ARM64-Enable bfloat16 kernels by default
* Sharif Inamdar <sharif.inamdar@arm.com>
* [2025-06-05] Optimize gemv_n_sve_v1x3 kernel
* Guoyuan Li <https://github.com/guoyuanplct>
* [2025-04-11] Optimise gemv kernel for RISCV64_ZVL256B
* [2025-05-01] Optimise zgemv kernel for RISCV64_ZVL256B
* [2025-05-17] Optimise omatcopy/zomatcopy kernel for RISCV64_ZVL256B
* [2025-05-29] Optimise axpby kernel for RISCV64_ZVL256B
* [2025-06-05] Optimise hbmv kernel for RISCV64_ZVL256B
* Anna Mayne <anna.mayne@arm.com>
* [2025-11-19] Update thread throttling profile for SGEMV on NEOVERSEV1 and NEOVERSEV2
* Fadi Arafeh <fadi.arafeh@arm.com>
* [2026-03-05] Accelerate SVE128 SBGEMM/BGEMM
================================================
FILE: Changelog.txt
================================================
OpenBLAS ChangeLog
====================================================================
Version 0.3.31
15-Jan-2025
general:
- reverted a matrix partitioning optimization from 0.3.30 that could lead to
race conditions and subsequent invalid results in GEMM
- added the bfloat16 extensions BGEMM and BGEMV
- added a BLAS interface for the ?GEMM_BATCH extensions
- added the BLAS extensions ?GEMM_BATCH_STRIDED and their CBLAS interface
- added the basic infrastructure for half-precision float (FP16) format
using SH prefix
- reimplemented the LAPACK SLAED3/DLAED3 function using multithreading, thereby
improving the performance of the SSYEVD/DSYEVD eigensolver for symmetric matrices
on all platforms
- limited the number of retries for initial memory allocation to avoid infinite
hanging on low-memory systems
- fixed a thread lockup situation encountered with python 3.9 or older and numpy
- introduced a problem size threshold for multithreading in STRMV/DTRMV
- introduced a problem size threshold for multithreading in CHER/CHER2/CHPR/CHPR2
and ZHER/ZHER2/ZHPR/ZHPR2
- improved the problem size thresholds for multithreading in SGER/DGER
- improved autodetection of the Fortran compiler
- fixed passing of the INTERFACE64=1 option to the flang-new compiler
- fixed a potential deadlock in multithreaded code after calling fork()
- fixed builds using CMake on FreeBSD
- fixed builds using CMake from within Cygwin on Windows
- fixed builds using CMake and the NVHPC compiler on ARM64
- fixed CMake build error from misdetecting compiler or OpenMP versions
- improved contents of the CMake-generated OpenBLASConfig.cmake file
- added support for cross-compilation to RISCV targets via CMake
- fixed cross-compilation to x86 targets from non-x86 architectures
- fixed failure to install cblas.h if NO_CBLAS=0 was specified
- fixed missing user-defined pre- and postfixes on functions in lapack.h,lapacke.h
- included fixes from the Reference-LAPACK project:
- fix ordering bug in ?LAED/?LASD (Reference-LAPACK PR 1140)
- revert changes in ?GEEV from PR 1129 (Reference-LAPACK PR 1142)
- fix workspace allocation in LAPACKE_?TRSEN (Reference-LAPACK PR 1144)
riscv:
- added optimized SBGEMM kernels for ZVL128B and ZVL256B targets
- added optimized SHGEMM kernels for ZVL128B and ZVL256B targets
- added optimized SBGEMV and SHGEMV kernels for ZVL128B/ZVL256B
- improved performance of the GEMV kernel for ZVL256B
- improved the performance of the CROT and ZROT kernels for ZVL128B and x280
- improved the detection of RVV1.0 capability
- improved performance of the matrix packing helper functions for ZVL128B and ZVL256B
- improved performance of OMATCOPY for ZVL128B and ZVL256B
arm:
- fixed spurious executable stack in the getarch utility
arm64:
- fixed spurious executable stack in the getarch utility
- fixed compiler warnings arising from the timer macro RPCC
- fixed cache size detection for Qualcomm Oryon under Windows on Arm
- fixed argument handling in the default SVE kernel for SDOT/DDOT
- building the BFLOAT16 kernels is now enabled by default
- improved the overall performance of GEMM,SYMM and HEMM on A64FX
- improved the performance of SDOT/DDOT on A64FX
- improved the multithreading performance of SDOT/DDOT on A64FX by
introduction of a throttling table matching thread count to problem size
- improved the performance of SGER/DGER on A64FX and NEOVERSEV1
- improved the multithreading performance of GEMM on A64FX and NEOVERSEV1
- improved the performance of the GEMV kernel for SVE-capable targets
- improved the multithreading performance of SGEMM on NEOVERSEV1 and V2
- added optimized SAXPY/DAXPY SVE kernels for A64FX and NEOVERSEV1
- added optimized BGEMM and BGEMV kernels for NEOVERSEV1
- added an optimized BGEMM kernel for NEOVERSEN2
- added support for the NEOVERSEV2 cpu
- added dedicated support for the Apple M4 cpu as VORTEXM4
- added optimized SGEMM/SSYMM/STRMM/SSYRK/SSYR2K for SME-capable targets
(ARMV9SME and VORTEXM4)
- improved the precision of the SNRM2 kernel
- added cpu autodetection and compiler settings for Ampere One processors
- fixed cpu autodetection for Apple M systems running Linux
- fixed building on MacOS with AppleClang,gfortran and xcode v16 or newer
- fixed several errors in the C code replacements for the complex and double
precision complex LAPACK functions that get used (only) when compiling with
Microsoft C and NOFORTRAN=1 under MS Windows
power:
- added initial support for the POWER11 architecture
- improved performance of DGEMM and DGEMV on POWER10
- fixed the default compiler flags to use "-O3" instead of the possibly unsafe
"-Ofast"
- fixed building under MacOS (for old G4 Macs) with CMake
- fixed potential miscompilation of DGEMV and other assembly kernels by gcc15.1
- fixed compilation with recent versions of flang
loongarch64:
- fixed warnings and potential inaccuracies arising from incorrect saving of registers
- fixed enumeration of logical cores on big NUMA servers
- fixed building with LLVM and the INTERFACE64=1 option
x86:
- fixed building the GEMM3M kernels for the GENERIC target
- fixed several errors in the C code replacements for the complex and double
precision complex LAPACK functions that get used (only) when compiling with
Microsoft C and NOFORTRAN=1 under MS Windows
x86_64:
- added cpu autodetection for Intel Lunar Lake (Core Ultra 200V)
- changed all ?MIN and ?MAX assembly kernels to use unaligned operations
- fixed several errors in the C code replacements for the complex and double
precision complex LAPACK functions that get used (only) when compiling with
Microsoft C and NOFORTRAN=1 under MS Windows
- fixed potential crashes in builds for Cooper Lake, Sapphire Rapids or Zen5 cpus
under MS Windows
zarch:
- added support for building with CMake
sparc:
- fixed a potential crash in the DNRM2 kernel
====================================================================
Version 0.3.30
19-Jun-2025
general:
- fixed an installation problem with the thread safety test in gmake builds
- fixed spurious overwriting of an input array in complex GEMMT/GEMMTR
- fixed naming of GEMMTR in error messages from XERBLA
- fixed compilation of SBGEMMT/SBGEMMTR in CMake builds
- fixed the implementation of ?NRM2 to handle INCX=0 correctly
- removed tests for CSROT and ZDROT that relied on unspecified behavior
- fixed a performance regression in multithreaded GEMM that was particularly
serious on POWER targets
- fixed linking issues when using LLVM's flang-new with gmake
- fixed a potential thread safety problem with C11 atomic operations
- further improved the workload partitioning in parallel GEMM
- fixed omission of LAPACKE interfaces for CGESVDQ,CTRSYL3 and ?GEQPF in
CMake builds
- fixed mishandling of setting NO_LAPACK to FALSE, and incorrect dependencies
for LAPACK function SPMV in CMake builds
- added explicit CMake options for building LAPACKE and shared libraries
- simplified and improved handling of OpenMP options in CMake builds
- reworked Windows DLL generation in CMake builds to ensure correct symbol
renaming (pre/postfixing) and optional generation of PDB files for debugging
- updated the Perl script version of the gensymbol utility for use with
Windows-on-Arm
- Fixed building with (Mingw) gmake on Windows to ensure completeness of the
LAPACK included in the static library (potential race condition due to the
Windows version of the "ln" utility creating snapshot copies rather than links)
- fixed unwanted deletion of the lapacke_mangling.h file by "make clean"
- fixed potential duplication of a _64 suffix on library names in CMake builds
- fixed compilation of the C fallback copies of the LAPACK code with GCC 15
- included fixed from the Reference-LAPACK project:
- fixed a truncated error message in the EIG part of the testsuite
(Reference-LAPACK PR 1119)
- fixed too strict check in LAPACKE_?gesdd_work (PR #1126)
- fixed memory corruption when calling ?GEEV with non-finite data (PR #1128)
- fixed missing initialization of a variable in C/GEQP3RK (PR #1131)
- fixed 2nd dimension chosen in C/ZUNMLQ transposition operation (PR #1135)
x86_64:
- fixed an error in the SBGEMV kernel for Cooper Lake/Sapphire Rapids
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
- improved the compiler identification code for flang-new
- fixed a potential build issue in the ZSUM kernel
- fixed "argument list too long" errors when building on MacOS
- added cpu autodetection support for several new Arrow Lake models
- fixed conditional inclusion of the fast path SGEMM kernel in DYNAMIC_ARCH
- fixed compilation with the MinGW build of GCC 15
arm64:
- fixed cpu type detection of A64FX and some ThunderX models (broken in 0.3.29)
- added support for the AmpereOne/1A cpus in DYNAMIC_ ARCH builds
- added an optimized SBGEMM kernel for NEOVERSEV1
- improved 1xN SBGEMM performance by forwarding to SBGEMV
- introduced a stepwise increase of the thread count used for
SGEMM and SGEMV on NEOVERSEV1/V2 in relation to problem size
- introduced a stepwise increase of the thread count used for
DGEMV on NEOVERSEV1 in relation to problem size
- introduced a stepwise increase of the thread count used for
SDOT and DDOT on NEOVERSEV1 in relation to problem size
- worked around assembler limitations in LLVM for Windows-on-Arm
- enabled cpu type autodetection from the registry on Windows-on-Arm
- improved multithreading threshold for GEMV and GESV on Windows-on-Arm
- fixed overoptimization issues with LLVM's flang in Windows-on-Arm
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
- added a fast path SGEMM kernel for small workloads on SME capable targets
- improved performance of SGEMM and DGEMM kernels for small workloads
- improved performance of SGEMV and DGEMV on SVE-capable targets
- improved performance of SGEMV on NEOVERSEN1 and Apple M
- added optimized SSYMV and DSYMV kernels for NEOVERSEN1, Apple M and all
SVE capable targets
- added optimized SBGEMV kernels for NEOVERSEV1/V2/N2
- improved performance of SGEMM through faster NCOPY kernels
- added compiler options for the NVIDIA HPC Compiler Suite
- fixed compilation on OSX with XCode 16.3 and later
- fixed cpu core type and cache size detection on Apple M4
- updated GEMM parameter settings for Neoverse cpus in cross-builds with CMake
- fixed default compiler options for NEOVERSEN1 and CORTEXX2 in CMake builds
- fixed conditional inclusion of the fast path SGEMM kernel in DYNAMIC_ARCH
- fixed potential miscompilation of the non-SVE SDOT kernel
riscv64:
- added optimized SROTM and DROTM kernels for x280
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
- improved performance of GEMM_TCOPY on RVV1.0 targets with
VLEN of 128 or 256
- improved performance of OMATCOPY on targets with VLEN 256
- greatly improved performance of SGEMV/DGEMV
- improved performance of CGEMV and ZGEMV on C910V and all RVV targets
with VLEN 256
- improved performance of SAXPBY and DAXPBY on C910V and all RVV targets
with VLEN 256
- improved performance of AXPY and DOT on C910V and ZVL256B targets by
falling back to non-vectorized code for very small N. (Thereby fixing
poor performance of CHBMV/ZHBMV for very small K)
- fixed CMake build failures of the TRMM kernels
loongarch64:
- improved performance of the LSX versions of SSYMV/DSYMV
- made the LASX versions of the DSYMV and SSYMV kernels
compatible with hardware changes in LA664 and future targets
- fixed inaccuracies in several LASX kernels
- improved compatibility of LSX kernels with LA264 targets
- fixed handling of deprecated target names in CMake builds
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
power:
- fixed building for PPCG4 with CMake
- fixed SSCAL/DSCAL on PPC970 running FreeBSD
- fixed a potential alignment issue in the POWER8 SGEMV kernel
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
zarch:
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
- fixed unwanted generation of object files with a writable stack
x86:
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
- worked around potential miscompilation of CDOT with very old binutils
arm:
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
- fixed unwanted generation of object files with a writable stack
sparc:
- fixed corner cases of NAN and INF input handling in CSCAL and ZSCAL
alpha:
- fixed build failure caused by spurious Windows-only typecasts
cell:
- fixed probable build issue caused by spurious Windows-only typecasts
====================================================================
Version 0.3.29
12-Jan-2025
general:
- fixed a potential NULL pointer dereference in multithreaded builds
- added function aliases for GEMMT using its new name GEMMTR adopted by Reference-BLAS
- fixed a build failure when building without LAPACK_DEPRECATED functions
- the minimum required CMake version for CMake-based builds was raised to 3.16.0 in order
to remove many compatibility and deprecation warnings
- added more detailed CMake rules for OpenMP builds (mainly to support recent LLVM)
- fixed the behavior of the recently added CBLAS_?GEMMT functions with row-major data
- improved thread scaling of multithreaded SBGEMV
- improved thread scaling of multithreaded TRTRI
- fixed compilation of the CBLAS testsuite with gcc14 (and no Fortran compiler)
- added support for option handling changes in flang-new from LLVM18 onwards
- added support for recent calling conventions changes in Cray and NVIDIA compilers
- added support for compilation with the NAG Fortran compiler
- fixed placement of the -fopenmp flag and libsuffix in the generated pkgconfig file
- improved the CMakeConfig file generated by the Makefile build
- fixed const-correctness of cblas_?geadd in cblas.h
- fixed a potential inaccuracy in multithreaded BLAS3 calls
- fixed empty implementations of get/set_affinity that print a warning in OpenMP builds
- fixed function signatures for TRTRS in the converted C version of LAPACK
- fixed omission of several single-precision LAPACK symbols in the shared library
- improved build instructions for the provided "pybench" benchmarks
- improved documentation, including added build instructions for WoA and HarmonyOS
as well as descriptions of environment variables that affect build and runtime behavior
- added a separate "make install_tests" target for use with cross-compilations
- integrated improvements and corrections from Reference-LAPACK:
- removed a comparison in LAPACKE ?tpmqrt that is always false (LAPACK PR 1062)
- fixed the leading dimension for B in tests for GGEV (LAPACK PR 1064)
- replaced the ?LARFT functions with a recursive implementation (LAPACK PR 1080)
arm:
- fixed build with recent versions of the NDK (missing .type declaration of symbols)
arm64:
- fixed a long-standing bug in the (generic) c/zgemm_beta kernel that could lead to
reads and writes outside the array bounds in some circumstances
- rewrote cpu autodetection to scan all cores and return the highest performing type
- improved the DGEMM performance for SVE targets and small matrix sizes
- improved dimension criteria for forwarding from GEMM to GEMV kernels
- added SVE kernels for ROT and SWAP
- improved SVE kernels for SGEMV and DGEMV on A64FX and NEOVERSEV1
- added support for using the "small matrix" kernels with CMake as well
- fixed compilation on Windows on Arm
- improved compile-time detection of SVE capability
- added cpu autodetection and initial support for Apple M4
- added support for compilation on systems running IOS
- added support for compilation on NetBSD ("evbarm" architecture)
- fixed NRM2 implementations for generic SVE targets and the Neoverse N2
- fixed compilation for SVE-capable targets with the NVIDIA compiler
x86_64:
- fixed a wrong storage size in the SBGEMV kernel for Cooper Lake
- added cpu autodetection for Intel Granite Rapids
- added cpu autodetection for AMD Ryzen 5 series
- added optimized SOMATCOPY_CT for AVX-capable targets
- fixed the fallback implementation of GEMM3M in GENERIC builds
- tentatively re-enabled builds with the EXPRECISION option
- worked around a miscompilation of tests with mingw32-gfortran14
- added support for compilation with the Intel oneAPI 2025.0 compiler on Windows
power:
- fixed multithreaded SBGEMM
- fixed a CMake build problem on POWER10
- improved the performance of SGEMV
- added vectorized implementations of SBGEMV and support for forwarding 1xN SBGEMM to them
- fixed illegal instructions and potential memory overflow in SGEMM on PPCG4
- fixed handling of NaN and Inf arguments in SSCAL and DSCAL on PPC440,G4 and 970
- added improved CGEMM and ZGEMM kernels for POWER10
- added Makefile logic to remove all optimization flags in DEBUG builds
mips64:
- fixed compilation with gcc14
- fixed GEMM parameter selection for the MIPS64_GENERIC target
- fixed a potential build failure when compiling with OpenMP
loongarch64:
- fixed compilation for Loongson3 with recent versions of gmake
- fixed a potential loss of precision in Loongson3A GEMM
- fixed a potential build failure when compiling with OpenMP
- added optimized SOMATCOPY for LASX-capable targets
- introduced a new cpu naming scheme while retaining compatibility
- added support for cross-compiling Loongarch64 targets with CMake
- added support for compilation with LLVM
riscv64:
- removed thread yielding overhead caused by sched_yield
- replaced some non-standard intrinsics with their official names
- fixed and sped up the implementations of CGEMM/ZGEMM TCOPY for vector lenghts 128 and 256
- improved the performance of SNRM2/DNRM2 for RVV1.0 targets
- added optimized ?OMATCOPY_CN kernels for RVV1.0 targets
====================================================================
Version 0.3.28
8-Aug-2024
general:
- Reworked the unfinished implementation of HUGETLB from GotoBLAS
for allocating huge memory pages as buffers on suitable systems
- Changed the unfinished implementation of GEMM3M for the generic
target on all architectures to at least forward to regular GEMM
- Improved multithreaded GEMM performance for large non-skinny matrices
- Improved BLAS3 performance on larger multicore systems through improved
parallelism
- Improved performance of the initial memory allocation by reducing
locking overhead
- Improved performance of GBMV at small problem sizes by introducing
a size barrier for the switch to multithreading
- Added an implementation of the CBLAS_GEMM_BATCH extension
- Fixed miscompilation of CAXPYC and ZAXPYC on all architectures in
CMAKE builds (error introduced in 0.3.27)
- Fixed corner cases involving the handling of NAN and INFINITY
arguments in ?SCAL on all architectures
- Added support for cross-compiling to WEBM with CMAKE (in addition
to the already present makefile support)
- Fixed NAN handling and potential accuracy issues in compilations with
Intel ICX by supplying a suitable fp-model option by default
- The contents of the github project wiki have been converted into
a new set of documentation included with the source code.
- It is now possible to register a callback function that replaces
the built-in support for multithreading with an external backend
like TBB (openblas_set_threads_callback_function)
- Fixed potential duplication of suffixes in shared library naming
- Improved C compiler detection by the build system to tolerate more
naming variants for gcc builds
- Fixed an unnecessary dependency of the utest on CBLAS
- Fixed spurious error reports from the BLAS extensions utest
- Fixed unwanted invocation of the GEMM3M tests in cross-compilation
- Fixed a flaw in the makefile build that could lead to the pkgconfig
file containing an entry of UNKNOWN for the target cpu after installing
- Integrated fixes from the Reference-LAPACK project:
- Fixed uninitialized variables in the LAPACK tests for ?QP3RK (PR 961)
- Fixed potential bounds error in ?UNHR_COL/?ORHR_COL (PR 1018)
- Fixed potential infinite loop in the LAPACK testsuite (PR 1024)
- Make the variable type used for hidden length arguments configurable (PR 1025)
- Fixed SYTRD workspace computation and various typos (PR 1030)
- Prevent compiler use of FMA that could increase numerical error in ?GEEVX (PR 1033)
x86-64:
- reverted thread management under Windows to its state before 0.3.26
due to signs of race conditions in some circumstances now under study
- fixed accidental selection of the unoptimized generic SBGEMM kernel
in CMAKE builds for CooperLake and SapphireRapids targets
- fixed a potential thread buffer overrun in SBSTOBF16 on small systems
- fixed an accuracy issue in ZSCAL introduced in 0.3.26
- fixed compilation with CMAKE and recent releases of LLVM
- added support for Intel Emerald Rapids and Meteor Lake cpus
- added autodetection support for the Zhaoxin KX-7000 cpu
- fixed autodetection of Intel Prescott (probably broken since 0.3.19)
- fixed compilation for older targets with the Yocto SDK
- fixed compilation of the converter-generated C versions
of the LAPACK sources with gcc-14
- improved compiler options when building with CMAKE and LLVM for
AVX512-capable targets
- added support for supplying the L2 cache size via an environment
variable (OPENBLAS_L2_SIZE) in case it is not correctly reported
(as in some VM configurations)
- improved the error message shown when thread creation fails on startup
- fixed setting the rpath entry of the dylib in CMAKE builds on MacOS
arm:
- fixed building for baremetal targets with make
arm64:
- Added a fast path forwarding SGEMM and DGEMM calls with a 1xN or Mx1
matrix to the corresponding GEMV kernel
- added optimized SGEMV and DGEMV kernels for A64FX
- added optimized SVE kernels for small-matrix GEMM
- added A64FX to the cpu list for DYNAMIC_ARCH
- fixed building with support for cpu affinity
- worked around accuracy problems with C/ZNRM2 on NeoverseN1 and
Apple M targets
- improved GEMM performance on Neoverse V1
- fixed compilation for NEOVERSEN2 with older compilers
- fixed potential miscompilation of the SVE SDOT and DDOT kernels
- fixed potential miscompilation of the non-SVE CDOT and ZDOT kernels
- fixed a potential overflow when using very large user-defined BUFFERSIZE
- fixed setting the rpath entry of the dylib in CMAKE builds on MacOS
power:
- Added a fast path forwarding SGEMM and DGEMM calls with a 1xN or Mx1
matrix to the corresponding GEMV kernel
- significantly improved performance of SBGEMM on POWER10
- fixed compilation with OpenMP and the XLF compiler
- fixed building of the BLAS extension utests under AIX
- fixed building of parts of the LAPACK testsuite with XLF
- fixed CSWAP/ZSWAP on big-endian POWER10 targets
- fixed a performance regression in SAXPY on POWER10 with OpenXL
- fixed accuracy issues in CSCAL/ZSCAL when compiled with LLVM
- fixed building for POWER9 under FreeBSD
- fixed a potential overflow when using very large user-defined BUFFERSIZE
- fixed an accuracy issue in the POWER6 kernels for GEMM and GEMV
riscv64:
- Added a fast path forwarding SGEMM and DGEMM calls with a 1xN or Mx1
matrix to the corresponding GEMV kernel
- fixed building for RISCV64_GENERIC with OpenMP enabled
- added DYNAMIC_ARCH support (comprising GENERIC_RISCV64 and the two
RVV 1.0 targets with vector length of 128 and 256)
- worked around the ZVL128B kernels for AXPBY mishandling the special
case of zero Y increment
loongarch64:
- improved GEMM performance on servers of the 3C5000 generation
- improved performance and stability of DGEMM
- improved GEMV and TRSM kernels for LSX and LASX vector ABIs
- fixed CMAKE compilation with the INTERFACE64 option set
- fixed compilation with CMAKE
- worked around spurious errors flagged by the BLAS3 tests
- worked around a miscompilation of the POTRS utest by gcc 14.1
mips64:
- fixed ASUM and SUM kernels to accept negative step sizes in X
- fixed complex GEMV kernels for MSA
====================================================================
Version 0.3.27
4-Apr-2024
general:
- added initial (generic) support for the CSKY architecture
- capped the maximum number of threads used in GEMM, GETRF and POTRF to avoid creating
underutilized or idle threads
- sped up multithreaded POTRF on all platforms
- added extension openblas_set_num_threads_local() that returns the previous thread count
- re-evaluated the SGEMV and DGEMV load thresholds to avoid activating multithreading
for too small workloads
- improved the fallback code used when the precompiled number of threads is exceeded,
and made it callable multiple times during the lifetime of an instance
- added CBLAS interfaces for the BLAS extensions ?AMIN,?AMAX, CAXPYC and ZAXPYC
- fixed a potential buffer overflow in the interface to the GEMMT kernels
- fixed use of incompatible pointer types in GEMMT and C/ZAXPBY as flagged by GCC-14
- fixed unwanted case sensitivity of the character parameters in ?TRTRS
- sped up the OpenMP thread management code
- fixed sizing of logical variables in INTERFACE64 builds of the C version of LAPACK
- fixed inclusion of new LAPACK and LAPACKE functions from LAPACK 3.11 in the shared library
- added a testsuite for the BLAS extensions
- modified the error thresholds for SGS/DGS functions in the LAPACK testsuite to suppress
spurious errors
- added support for building the benchmark collection with CMAKE
- added rewriting of linker options to avoid linking both libgomp and libomp in CMAKE builds
with OpenMP enabled that use clang with gfortran
- fixed building on systems with ucLibc
- added support for calling ?NRM2 with a negative increment value on all architectures
- added support for the LLVM18 version of the flang-new compiler
- fixed handling of the OPENBLAS_LOOPS variable in several benchmarks
- Integrated fixes from the Reference-LAPACK project:
- Increased accuracy in C/ZLARFGP (Reference-LAPACK PR 981)
x86:
- fixed handling of NaN and Inf arguments in ZSCAL
- fixed GEMM3M functions failing in CMAKE builds
x86-64:
- removed all instances of sched_yield() on Linux and BSD
- fixed a potential deadlock in the thread server on MSWindows (introduced in 0.3.26)
- fixed GEMM3M functions failing in CMAKE builds
- fixed handling of NaN and Inf arguments in ZSCAL
- added compiler checks for AVX512BF16 compatibility
- fixed LLVM compiler options for Sapphire Rapids
- fixed cpu handling fallbacks for Sapphire Rapids with
disabled AVX2 in DYNAMIC_ARCH mode
- fixed extensions SCSUM and DZSUM
- improved GEMM performance for ZEN targets
arm:
- fixed handling of NaN and Inf arguments in ZSCAL
arm64:
- added initial support for the Cortex-A76 cpu
- fixed handling of NaN and Inf arguments in ZSCAL
- fixed default compiler options for gcc (-march and -mtune)
- added support for ArmCompilerForLinux
- added support for the NeoverseV2 cpu in DYNAMIC_ARCH builds
- fixed mishandling of the INTERFACE64 option in CMAKE builds
- corrected SCSUM kernels (erroneously duplicating SCASUM behaviour)
- added SVE-enabled kernels for CSUM/ZSUM
- worked around an inaccuracy in the NRM2 kernels for NeoverseN1 and Apple M
power:
- improved performance of SGEMM on POWER8/9/10
- improved performance of DGEMM on POWER10
- added support for OpenMP builds with xlc/xlf on AIX
- improved cpu autodetection for DYNAMIC_ARCH builds on older AIX
- fixed cpu core counting on AIX
- added support for building a shared library on AIX
riscv64:
- added support for the X280 cpu
- added support for semi-generic RISCV models with vector length 128 or 256
- added support for compiling with either RVV 0.7.1 or RVV 1.0 standard compilers
- fixed handling of NaN and Inf arguments in ZSCAL
- improved cpu model autodetection
- fixed corner cases in ?AXPBY for C910V
- fixed handling of zero increments in ?AXPY kernels for C910V
loongarch64:
- added optimized kernels for ?AMIN and ?AMAX
- fixed handling of NaN and Inf arguments in ZSCAL
- fixed handling of corner cases in ?AXPBY
- fixed computation of SAMIN and DAMIN in LSX mode
- fixed computation of ?ROT
- added optimized SSYMV and DSYMV kernels for LSX and LASX mode
- added optimized CGEMM and ZGEMM kernels for LSX and LASX mode
- added optimized CGEMV and ZGEMV kernels
mips:
- fixed utilizing MSA on P5600 and related cpus (broken in 0.3.22)
- fixed handling of NaN and Inf arguments in ZSCAL
- fixed mishandling of the INTERFACE64 option in CMAKE builds
zarch:
- fixed handling of NaN and Inf arguments in ZSCAL
- fixed calculation of ?SUM on Z13
====================================================================
Version 0.3.26
2-Jan-2024
general:
- improved the version of openblas.pc that is created by the CMAKE build
- fixed a CMAKE-specific build problem on older versions of MacOS
- worked around linking problems on old versions of MacOS
- corrected installation location of the lapacke_mangling header in CMAKE builds
- added type declarations for complex variables to the MSVC-specific parts of the LAPACK header
- significantly sped up ?GESV for small problem sizes by introducing a lower bound for multithreading
- imported additions and corrections from the Reference-LAPACK project:
- added new LAPACK functions for truncated QR with pivoting (Reference-LAPACK PRs 891&941)
- handle miscalculation of minimum work array size in corner cases (Reference-LAPACK PR 942)
- fixed use of uninitialized variables in ?GEDMD and improved inline documentation (PR 959)
- fixed use of uninitialized variables (and consequential failures) in ?BBCSD (PR 967)
- added tests for the recently introduced Dynamic Mode Decomposition functions (PR 736)
- fixed several memory leaks in the LAPACK testsuite (PR 953)
- fixed counting of testsuite results by the Python script (PR 954)
x86-64:
- fixed computation of CASUM on SkylakeX and newer targets in the special
case that AVX512 is not supported by the compiler or operating environment
- fixed potential undefined behaviour in the CASUM/ZASUM kernels for AVX512 targets
- worked around a problem in the pre-AVX kernels for GEMV
- sped up the thread management code on MS Windows
arm64:
- fixed building of the LAPACK testsuite with Xcode 15 on Apple M1 and newer
- sped up the thread management code on MS Windows
- sped up SGEMM and DGEMM on Neoverse V1 and N1
- sped up ?DOT on SVE-capable targets
- reduced the number of targets in DYNAMIC_ARCH builds by eliminating functionally equivalent ones
- included support for Apple M1 and newer targets in DYNAMIC_ARCH builds
power:
- improved the SGEMM kernel for POWER10
- fixed compilation with (very) old versions of gcc
- fixed detection of old 32bit PPC targets in CMAKE-based builds
- added autodetection of the POWERPC 7400 subtype
- fixed CMAKE-based compilation for PPCG4 and PPC970 targets
loongarch64:
- added and improved optimized kernels for almost all BLAS functions
====================================================================
Version 0.3.25
12-Nov-2023
general:
- improved the error message shown on exceeding the maximum thread count
- improved the code to add supplementary thread buffers in case of overflow
- fixed a potential division by zero in ?ROTG
- improved the ?MATCOPY functions to accept zero-sized rows or columns
- corrected empty prototypes in function declarations
- cleaned up unused declarations in the f2c-converted versions of the LAPACK sources
- fixed compilation with the Cray CCE Compiler suite
- improved link line rewriting to avoid mixed libgomp/libomp builds with clang&gfortran
- worked around OPENMP builds with LLVM14's libomp hanging on FreeBSD
- improved the Makefiles to require less option duplication on "make install"
- imported the following changes from the upcoming release 3.12 of Reference-LAPACK
- deprecate utility functions ?GELQS and ?GEQRS (LAPACK PR 900)
- apply rounding up to workspace calculations done in floating point (LAPACK PR 904)
- avoid overflow in STGEX2/DTGEX2 (LAPACK PR 907)
- fix accumulation in ?LASSQ (LAPACK PR 909)
- fix handling of NaN values in ?GECON (LAPACK PR 926)
- avoid overflow in CBDSQR/ZBDSQR (LAPACK PR 927)
- fix poor vector orthogonalizations in ?ORBDB5/?UNBDB5 (LAPACK PR 928 & 930)
x86-64:
- fixed compile-time autodetection of AMD Ryzen3 and Ryzen4 cpus
- fixed capability-based fallback selection for unknown cpus in DYNAMIC_ARCH
- added AVX512 optimizations for ?ASUM on Sapphire Rapids and Cooper Lake
ARM64:
- fixed building on Apple with homebrew gcc
- fixed building with XCODE 15
- fixed building on A64FX and Cortex A710/X1/X2
- increased the default buffer size for recent ARM server cpus
POWER:
- fixed building with the IBM xlf 16.1.1 compiler
- fixed building with IBM XL C
- added support for DYNAMIC_ARCH builds with clang
- fixed union declaration in the BFLOAT16 test case
- enable optimizations for the AIX assembler on POWER10
LOONGARCH64:
- added an optimized SGEMV kernel
- added an optimized DTRSM kernel
====================================================================
Version 0.3.24
03-Sep-2023
general:
- declared the arguments of cblas_xerbla as const (in accordance with the reference implementation
and others, the previous discrepancy appears to have dated back to GotoBLAS)
- fixed the implementation of ?GEMMT that was added in 0.3.23
- made cpu-specific SWITCH_RATIO parameters for GEMM available to DYNAMIC_ARCH builds
- fixed application of SYMBOLSUFFIX in CMAKE builds
- fixed missing SSYCONVF function in the shared library
- fixed parallel build logic used with gmake
- added support for compilation with LLVM17, in particular its new Fortran compiler
- added support for CMAKE builds using the NVIDIA HPC compiler
- fixed INTERFACE64 builds with CMAKE and the f95 Fortran compiler
- fixed cross-build detection and management in c_check
- disabled building of the tests with CMAKE when ONLY_CBLAS is defined
- fixed several issues with the handling of runtime limits on the number of OPENMP threads
- corrected the error code returned by SGEADD/DGEADD when LDA is too small
- corrected the error code returned by IMATCOPY when LDB is too small
- updated ?NRM2 to support negative increment values (as introduced in release 3.10
of the reference BLAS)
- fixed OpenMP builds with CLANG for the case where libomp is not in a standard location
- fixed a potential overwrite of unrelated memory during thread initialisation on startup
- fixed a potential integer overflow in the multithreading threshold for ?SYMM/?SYRK
- fixed build of the LAPACKE interfaces for the LAPACK 3.11.0 ?TRSYL functions added in 0.3.22
- fixed installation of .cmake files in concurrent 32 and 64bit builds with CMAKE
- applied additions and corrections from the development branch of Reference-LAPACK:
- fixed actual arguments passed to a number of LAPACK functions (from Reference-LAPACK PR 885)
- fixed workspace query results in LAPACK ?SYTRF/?TRECV3 (from Reference-LAPACK PR 883)
- fixed derivation of the UPLO parameter in LAPACKE_?larfb (from Reference-LAPACK PR 878)
- fixed a crash in LAPACK ?GELSDD on NRHS=0 (from Reference-LAPACK PR 876)
- added new LAPACK utility functions CRSCL and ZRSCL (from Reference-LAPACK PR 839)
- corrected the order of eigenvalues for 2x2 matrices in ?STEMR (Reference-LAPACK PR 867)
- removed spurious reference to OpenMP variables outside OpenMP contexts (Reference-LAPACK PR 860)
- updated file comments on use of LAMBDA variable in LAPACK (Reference-LAPACK PR 852)
- fixed documentation of LAPACK SLASD0/DLASD0 (Reference-LAPACK PR 855)
- fixed confusing use of "minor" in LAPACK documentation (Reference-LAPACK PR 849)
- added new LAPACK functions ?GEDMD for dynamic mode decomposition (Reference-LAPACK PR 736)
- fixed potential stack overflows in the EIG part of the LAPACK testsuite (Reference-LAPACK PR 854)
- applied small improvements to the variants of Cholesky and QR functions (Reference-LAPACK PR 847)
- removed unused variables from LAPACK ?BDSQR (Reference-LAPACK PR 832)
- fixed a potential crash on allocation failure in LAPACKE SGEESX/DGEESX (Reference-LAPACK PR 836)
- added a quick return from SLARUV/DLARUV for N < 1 (Reference-LAPACK PR 837)
- updated function descriptions in LAPACK ?GEGS/?GEGV (Reference-LAPACK PR 831)
- improved algorithm description in ?GELSY (Reference-LAPACK PR 833)
- fixed scaling in LAPACK STGSNA/DTGSNA (Reference-LAPACK PR 830)
- fixed crash in LAPACKE_?geqrt with row-major data (Reference-LAPACK PR 768)
- added LAPACKE interfaces for C/ZUNHR_COL and S/DORHR_COL (Reference-LAPACK PR 827)
- added error exit tests for SYSV/SYTD2/GEHD2 to the testsuite (Reference-LAPACK PR 795)
- fixed typos in LAPACK source and comments (Reference-LAPACK PRs 809,811,812,814,820)
- adopt refactored ?GEBAL implementation (Reference-LAPACK PR 808)
x86_64:
- added cpu model autodetection for Intel Alder Lake N
- added activation of the AMX tile to the Sapphire Rapids SBGEMM kernel
- worked around miscompilations of GEMV/SYMV kernels by gcc's tree-vectorizer
- fixed compilation of Cooperlake and Sapphire Rapids kernels with CLANG
- fixed runtime detection of Cooperlake and Sapphire Rapids in DYNAMIC_ARCH
- fixed feature-based cputype fallback in DYNAMIC_ARCH
- added support for building the AVX512 kernels with the NVIDIA HPC compiler
- corrected ZAXPY result on old pre-AVX hardware for the INCX=0 case
- fixed a potential use of uninitialized variables in ZTRSM
ARM64:
- added cpu model autodetection for Apple M2
- fixed wrong results of CGEMM/CTRMM/DNRM2 under OSX (use of reserved register)
- added support for building the SVE kernels with the NVIDIA HPC compiler
- added support for building the SVE kernels with the Apple Clang compiler
- fixed compiler option handling for building the SVE kernels with LLVM
- implemented SWITCH_RATIO parameter for improved GEMM performance on Neoverse
- activated SVE SGEMM and DGEMM kernels for Neoverse V1
- improved performance of the SVE CGEMM and ZGEMM kernels on Neoverse V1
- improved kernel selection for the ARMV8SVE target and added it to DYNAMIC_ARCH
- fixed runtime check for SVE availability in DYNAMIC_ARCH builds to take OS or
container restrictions into account
- fixed a potential use of uninitialized variables in ZTRSM
- fix a potential misdetection of ARMV8 hardware as 32bit in CMAKE builds
LOONGARCH64:
- added ABI detection
- added support for cpu affinity handling
- fixed compilation with early versions of the Loongson toolchain
- added an optimized SGEMM kernel for 3A5000
- added optimized DGEMV kernels for 3A5000
- improved the performance of the DGEMM kernel for 3A5000
MIPS64:
- fixed miscompilation of TRMM kernels for the MIPS64_GENERIC target
POWER:
- fixed compiler warnings in the POWER10 SBGEMM kernel
RISCV:
- fixed application of the INTERFACE64 option when building with CMAKE
- fix a potential misdetection of RISCV hardware as 32bit in CMAKE builds
- fixed IDAMAX and DOT kernels for C910V
- fixed corner cases in the ROT and SWAP kernels for C910V
- fixed compilation of the C910V target with recent vendor compilers
====================================================================
Version 0.3.23
01-Apr-2023
general:
- fixed a serious regression in GETRF/GETF2 and ZGETRF/ZGETF2 where
subnormal but nonzero data elements triggered the singularity flag
- fixed a long-standing bug in CSPR/ZSPR in single-threaded operation
for cases where elements of the X vector are real numbers (or
complex with only the real part zero)
- fixed gmake builds with the option NO_LAPACK
- fixed a few instances in the gmake Makefiles where expressly
setting NO_LAPACK=0 or NO_LAPACKE=0 would have the opposite effect
x86_64:
- added further CPUID values for Intel Raptor Lake
====================================================================
Version 0.3.22
26-Mar-2023
general:
- Updated the included LAPACK to Reference-LAPACK release 3.11.0
plus post-release corrections and improvements
- Added initial support for processing with the EMSCRIPTEN javascript
converter (yielding a single-threaded build only)
- Added a threshold for multithreading in SYMM, SYMV and SYR2K
- Increased the threshold for multithreading in SYRK
- OpenBLAS no longer decreases the global OMP_NUM_THREADS when it
exceeds the maximum thread count the library was compiled for.
- fixed ?GETF2 potentially returning NaN with tiny matrix elements
- fixed openblas_set_num_threads to work in USE_OPENMP builds
- fixed cpu core counting in USE_OPENMP builds returning the number
of OMP "places" rather than cores
- fixed interpretation of USE_PERL=0 in build scripts
- fixed linking of the library with libm in CMAKE builds
- fixed startup delays resulting from a wrong default setting of
NO_WARMUP in CMAKE builds
- fixed inconsistent defaults for overriding of LAPACK SPMV, SPR,
SYMV, SYR functions in gmake and CMAKE builds
- fixed stride calculation in the optimized small-matrix path of
complex SYR
- fixed compilation of ReLAPACK with CMAKE
- fixed pkgconfig file contents for INTERFACE64 builds
- fixed building of Reference-LAPACK with recent gfortran
- fixed building with only a subset of precision types on Windows
- added new environment variable OPENBLAS_DEFAULT_NUM_THREADS
- added a GEMV-based implementation of GEMMT
- added support for building under QNX
- updated support for (cross-)building for ALPHA targets
x86_64:
- added autodetection of Intel Raptor Lake cpu models
- added SSCAL microkernels for Haswell and newer targets
- improved the performance of the Haswell DSCAL microkernel
- added CSCAL and ZSCAL microkernels for SkylakeX targets
- fixed detection of gfortran and Cray CCE compilers
- fixed detection of recent versions of the Intel Fortran compiler
- fixed compilation with LLVM to no longer run out of AVX512 registers
- fix cpu type option setting with recent NVIDIA HPC compiler versions
- fixed compilation for/on AMD Ryzen 4 cpus
- fixed compilation of AVX2-capable targets with Apple Clang
- fixed runtime selection of COOPERLAKE in DYNAMIC_ARCH builds
- worked around gcc/llvm using risky FMA operations in CSCAL/ZSCAL
- worked around miscompilations of GEMV, SYMV and ZDOT kernels
by gcc12's tree-vectorizer on OSX and Windows
ARM:
- fixed cross-compilation to ARMV5 and ARMV6 targets with CMAKE
ARMV8:
- fixed cross-compilation to CortexA53 with CMAKE
- fixed compilation with CMAKE and "Arm Compiler for Linux 22.1"
- added cpu autodetection for Cortex X3 and A715
- fixed conditional compilation of SVE-capable targets in DYNAMIC_ARCH
- sped up SVE kernels by removing unnecessary prefetches
- improved the GEMM performance of Neoverse V1
- added SVE kernels for SDOT and DDOT
- added an SBGEMM kernel for Neoverse N2
- improved cpu-specific compiler option selection for Neoverse cpus
- added support for setting CONSISTENT_FPCSR
MIPS64:
- improved MSA capability detection and handling
- added a MIPS64_GENERIC build target
- fixed corner cases in DNRM2
LOONGARCH64:
- fixed handling of the INTERFACE64 option
RISCV:
- fixed handling of the INTERFACE64 option
====================================================================
Version 0.3.21
07-Aug-2022
general:
- Updated the included LAPACK to Reference-LAPACK release 3.10.1
- when no Fortran compiler is available, OpenBLAS builds will now automatically
build LAPACK from an f2c-converted copy of LAPACK 3.9.0 unless the NO_LAPACK option
is specified
- similarly added C versions of the BLAS and CBLAS tests
- enabled building of the ReLAPACK GEMMT kernels when ReLAPACK is built
- function LAPACKE_lsame is now annotated with the GCC attribute "const" to aid static analyzers
- added USE_TLS to the list of options reported by the openblas_get_config() function
- CMAKE builds now support the BUILD_TESTING keyword (to disable the LAPACK testsuite) of Reference-LAPACK
- fixed CMAKE builds of the laswp_ncopy and neg_tcopy kernels
- removed the build system requirements for PERL (while keeping the original perl scripts as backup)
- handle building and running OpenBLAS on systems that report zero available cpu cores
- added SYMBOLPREFIX/SYMBOLSUFFIX handling for LAPACK 3.10.0 functions added in 0.3.20
- fixed linking of the utests on QNX
- Added support for compilation with the Intel ifx compiler
- Added support for compilation with the Fujitsu FCC compiler for Fugaku
- Added support for compilation with the Cray C and Fortran compilers
- reverted OpenMP threadpool behaviour in the exec_blas ca
Showing preview only (340K chars total). Download the full file or copy to clipboard to get everything.
gitextract_5_eh2w8i/ ├── .cirrus.yml ├── .cirun.yml ├── .drone.yml ├── .github/ │ └── workflows/ │ ├── apple_m.yml │ ├── arm64_graviton.yml │ ├── c910v.yml │ ├── codspeed-bench.yml │ ├── docs.yml │ ├── dynamic_arch.yml │ ├── harmonyos.yml │ ├── loongarch64.yml │ ├── loongarch64_clang.yml │ ├── mips64.yml │ ├── nightly-Homebrew-build.yml │ ├── riscv64_vector.yml │ └── windows_arm64.yml ├── .gitignore ├── .travis.yml ├── BACKERS.md ├── CMakeLists.txt ├── CONTRIBUTORS.md ├── Changelog.txt ├── GotoBLAS_00License.txt ├── GotoBLAS_01Readme.txt ├── GotoBLAS_02QuickInstall.txt ├── GotoBLAS_03FAQ.txt ├── GotoBLAS_04FAQ.txt ├── GotoBLAS_05LargePage.txt ├── GotoBLAS_06WeirdPerformance.txt ├── Jenkinsfile ├── Jenkinsfile.pwr ├── LICENSE ├── Makefile ├── Makefile.alpha ├── Makefile.arm ├── Makefile.arm64 ├── Makefile.csky ├── Makefile.e2k ├── Makefile.generic ├── Makefile.ia64 ├── Makefile.install ├── Makefile.loongarch64 ├── Makefile.mips ├── Makefile.mips64 ├── Makefile.power ├── Makefile.prebuild ├── Makefile.riscv64 ├── Makefile.rule ├── Makefile.sparc ├── Makefile.system ├── Makefile.tail ├── Makefile.wasm ├── Makefile.x86 ├── Makefile.x86_64 ├── Makefile.zarch ├── README.md ├── SECURITY.md ├── TargetList.txt ├── USAGE.md ├── appveyor.yml ├── azure-pipelines.yml ├── benchmark/ │ ├── Make_exe.sh │ ├── Makefile │ ├── amax.c │ ├── amin.c │ ├── asum.c │ ├── axpby.c │ ├── axpy.c │ ├── bench.h │ ├── cholesky.c │ ├── copy.c │ ├── cula_wrapper.c │ ├── dot.c │ ├── geev.c │ ├── gemm.c │ ├── gemm3m.c │ ├── gemv.c │ ├── ger.c │ ├── gesv.c │ ├── getri.c │ ├── hbmv.c │ ├── hemm.c │ ├── hemv.c │ ├── her.c │ ├── her2.c │ ├── her2k.c │ ├── herk.c │ ├── hpmv.c │ ├── iamax.c │ ├── iamin.c │ ├── imax.c │ ├── imin.c │ ├── linpack.c │ ├── max.c │ ├── min.c │ ├── nrm2.c │ ├── omatcopy.c │ ├── plot-filter.sh │ ├── plot-header │ ├── potrf.c │ ├── pybench/ │ │ ├── README.md │ │ ├── benchmarks/ │ │ │ └── bench_blas.py │ │ ├── meson.build │ │ ├── openblas_wrap/ │ │ │ ├── __init__.py │ │ │ ├── blas_lapack.pyf.src │ │ │ ├── generate_f2pymod.py │ │ │ └── meson.build │ │ └── scipy_openblas.pc │ ├── rot.c │ ├── rotm.c │ ├── scal.c │ ├── scripts/ │ │ ├── NUMPY/ │ │ │ ├── cgemm.py │ │ │ ├── cgemv.py │ │ │ ├── daxpy.py │ │ │ ├── ddot.py │ │ │ ├── deig.py │ │ │ ├── dgemm.py │ │ │ ├── dgemv.py │ │ │ ├── dgesv.py │ │ │ ├── dsolve.py │ │ │ ├── sdot.py │ │ │ ├── sgemm.py │ │ │ ├── sgemv.py │ │ │ ├── zgemm.py │ │ │ └── zgemv.py │ │ ├── OCTAVE/ │ │ │ ├── cgemm.m │ │ │ ├── cgemv.m │ │ │ ├── deig.m │ │ │ ├── dgemm.m │ │ │ ├── dgemv.m │ │ │ ├── dsolve.m │ │ │ ├── sgemm.m │ │ │ ├── sgemv.m │ │ │ ├── zgemm.m │ │ │ └── zgemv.m │ │ ├── R/ │ │ │ ├── deig.R │ │ │ ├── dgemm.R │ │ │ └── dsolve.R │ │ └── SCIPY/ │ │ ├── dsyrk.py │ │ └── ssyrk.py │ ├── smallscaling.c │ ├── spmv.c │ ├── spr.c │ ├── spr2.c │ ├── swap.c │ ├── symm.c │ ├── symv.c │ ├── syr.c │ ├── syr2.c │ ├── syr2k.c │ ├── syrk.c │ ├── tplot-header │ ├── tpmv.c │ ├── tpsv.c │ ├── trmm.c │ ├── trmv.c │ ├── trsm.c │ ├── trsv.c │ ├── zdot-intel.c │ └── zdot.c ├── c_check ├── c_check.pl ├── cblas.h ├── cmake/ │ ├── OpenBLASConfig.cmake.in │ ├── arch.cmake │ ├── cc.cmake │ ├── export.cmake │ ├── f_check.cmake │ ├── fc.cmake │ ├── kernel.cmake │ ├── lapack.cmake │ ├── lapacke.cmake │ ├── openblas.pc.in │ ├── os.cmake │ ├── prebuild.cmake │ ├── system.cmake │ ├── system_check.cmake │ └── utils.cmake ├── common.h ├── common_alpha.h ├── common_arm.h ├── common_arm64.h ├── common_b.h ├── common_c.h ├── common_csky.h ├── common_d.h ├── common_e2k.h ├── common_ia64.h ├── common_interface.h ├── common_lapack.h ├── common_level1.h ├── common_level2.h ├── common_level3.h ├── common_linux.h ├── common_loongarch64.h ├── common_macro.h ├── common_mips.h ├── common_mips64.h ├── common_param.h ├── common_power.h ├── common_q.h ├── common_reference.h ├── common_riscv64.h ├── common_s.h ├── common_sb.h ├── common_sh.h ├── common_sparc.h ├── common_stackalloc.h ├── common_thread.h ├── common_wasm.h ├── common_x.h ├── common_x86.h ├── common_x86_64.h ├── common_z.h ├── common_zarch.h ├── cpp_thread_test/ │ ├── CMakeLists.txt │ ├── Makefile │ ├── cpp_thread_safety_common.h │ ├── dgemm_thread_safety.cpp │ └── dgemv_thread_safety.cpp ├── cpuid.S ├── cpuid.h ├── cpuid_alpha.c ├── cpuid_arm.c ├── cpuid_arm64.c ├── cpuid_ia64.c ├── cpuid_loongarch64.c ├── cpuid_mips.c ├── cpuid_mips64.c ├── cpuid_power.c ├── cpuid_riscv64.c ├── cpuid_sparc.c ├── cpuid_x86.c ├── cpuid_zarch.c ├── cpuid_zarch.h ├── ctest/ │ ├── CMakeLists.txt │ ├── LICENSE │ ├── Makefile │ ├── auxiliary.c │ ├── c_c2chke.c │ ├── c_c3chke.c │ ├── c_c3chke_3m.c │ ├── c_cblas1.c │ ├── c_cblas2.c │ ├── c_cblas3.c │ ├── c_cblas3_3m.c │ ├── c_cblat1.f │ ├── c_cblat1c.c │ ├── c_cblat2.f │ ├── c_cblat2c.c │ ├── c_cblat3.f │ ├── c_cblat3_3m.f │ ├── c_cblat3c.c │ ├── c_cblat3c_3m.c │ ├── c_d2chke.c │ ├── c_d3chke.c │ ├── c_dblas1.c │ ├── c_dblas2.c │ ├── c_dblas3.c │ ├── c_dblat1.f │ ├── c_dblat1c.c │ ├── c_dblat2.f │ ├── c_dblat2c.c │ ├── c_dblat3.f │ ├── c_dblat3c.c │ ├── c_s2chke.c │ ├── c_s3chke.c │ ├── c_sblas1.c │ ├── c_sblas2.c │ ├── c_sblas3.c │ ├── c_sblat1.f │ ├── c_sblat1c.c │ ├── c_sblat2.f │ ├── c_sblat2c.c │ ├── c_sblat3.f │ ├── c_sblat3c.c │ ├── c_xerbla.c │ ├── c_z2chke.c │ ├── c_z3chke.c │ ├── c_z3chke_3m.c │ ├── c_zblas1.c │ ├── c_zblas2.c │ ├── c_zblas3.c │ ├── c_zblas3_3m.c │ ├── c_zblat1.f │ ├── c_zblat1c.c │ ├── c_zblat2.f │ ├── c_zblat2c.c │ ├── c_zblat3.f │ ├── c_zblat3_3m.f │ ├── c_zblat3c.c │ ├── c_zblat3c_3m.c │ ├── cblas_test.h │ ├── cin2 │ ├── cin3 │ ├── cin3_3m │ ├── constant.c │ ├── din2 │ ├── din3 │ ├── sin2 │ ├── sin3 │ ├── zin2 │ ├── zin3 │ └── zin3_3m ├── ctest.c ├── ctest1.c ├── ctest2.c ├── docs/ │ ├── about.md │ ├── build_system.md │ ├── ci.md │ ├── developers.md │ ├── distributing.md │ ├── extensions.md │ ├── faq.md │ ├── index.md │ ├── install.md │ ├── runtime_variables.md │ └── user_manual.md ├── driver/ │ ├── level2/ │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── gbmv_k.c │ │ ├── gbmv_thread.c │ │ ├── gemv_thread.c │ │ ├── ger_thread.c │ │ ├── sbgemv_thread.c │ │ ├── sbmv_k.c │ │ ├── sbmv_thread.c │ │ ├── spmv_k.c │ │ ├── spmv_thread.c │ │ ├── spr2_k.c │ │ ├── spr2_thread.c │ │ ├── spr_k.c │ │ ├── spr_thread.c │ │ ├── symv_thread.c │ │ ├── syr2_k.c │ │ ├── syr2_thread.c │ │ ├── syr_k.c │ │ ├── syr_thread.c │ │ ├── tbmv_L.c │ │ ├── tbmv_U.c │ │ ├── tbmv_thread.c │ │ ├── tbsv_L.c │ │ ├── tbsv_U.c │ │ ├── tpmv_L.c │ │ ├── tpmv_U.c │ │ ├── tpmv_thread.c │ │ ├── tpsv_L.c │ │ ├── tpsv_U.c │ │ ├── trmv_L.c │ │ ├── trmv_U.c │ │ ├── trmv_thread.c │ │ ├── trsv_L.c │ │ ├── trsv_U.c │ │ ├── zgbmv_k.c │ │ ├── zhbmv_k.c │ │ ├── zher2_k.c │ │ ├── zher_k.c │ │ ├── zhpmv_k.c │ │ ├── zhpr2_k.c │ │ ├── zhpr_k.c │ │ ├── zsbmv_k.c │ │ ├── zspmv_k.c │ │ ├── zspr2_k.c │ │ ├── zspr_k.c │ │ ├── zsyr2_k.c │ │ ├── zsyr_k.c │ │ ├── ztbmv_L.c │ │ ├── ztbmv_U.c │ │ ├── ztbsv_L.c │ │ ├── ztbsv_U.c │ │ ├── ztpmv_L.c │ │ ├── ztpmv_U.c │ │ ├── ztpsv_L.c │ │ ├── ztpsv_U.c │ │ ├── ztrmv_L.c │ │ ├── ztrmv_U.c │ │ ├── ztrsv_L.c │ │ └── ztrsv_U.c │ ├── level3/ │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── gemm.c │ │ ├── gemm3m.c │ │ ├── gemm3m_level3.c │ │ ├── gemm_batch_thread.c │ │ ├── gemm_thread_m.c │ │ ├── gemm_thread_mn.c │ │ ├── gemm_thread_n.c │ │ ├── gemm_thread_variable.c │ │ ├── hemm3m_k.c │ │ ├── level3.c │ │ ├── level3_gemm3m_thread.c │ │ ├── level3_syr2k.c │ │ ├── level3_syrk.c │ │ ├── level3_syrk_threaded.c │ │ ├── level3_thread.c │ │ ├── symm3m_k.c │ │ ├── symm_k.c │ │ ├── syr2k_k.c │ │ ├── syr2k_kernel.c │ │ ├── syrk_k.c │ │ ├── syrk_kernel.c │ │ ├── syrk_thread.c │ │ ├── trmm_L.c │ │ ├── trmm_R.c │ │ ├── trsm_L.c │ │ ├── trsm_R.c │ │ ├── zhemm_k.c │ │ ├── zher2k_k.c │ │ ├── zher2k_kernel.c │ │ ├── zherk_beta.c │ │ ├── zherk_k.c │ │ ├── zherk_kernel.c │ │ └── zsyrk_beta.c │ ├── mapper/ │ │ ├── Makefile │ │ ├── device_setup │ │ └── mapper.c │ └── others/ │ ├── CMakeLists.txt │ ├── Makefile │ ├── abs.c │ ├── blas_l1_thread.c │ ├── blas_server.c │ ├── blas_server_callback.c │ ├── blas_server_omp.c │ ├── blas_server_win32.c │ ├── detect_riscv64.c │ ├── divtable.c │ ├── dynamic.c │ ├── dynamic_arm64.c │ ├── dynamic_loongarch64.c │ ├── dynamic_mips64.c │ ├── dynamic_power.c │ ├── dynamic_riscv64.c │ ├── dynamic_zarch.c │ ├── init.c │ ├── lamc3.c │ ├── lamch.c │ ├── lsame.c │ ├── memory.c │ ├── memory_qalloc.c │ ├── openblas_env.c │ ├── openblas_error_handle.c │ ├── openblas_get_config.c │ ├── openblas_get_num_procs.c │ ├── openblas_get_num_threads.c │ ├── openblas_get_parallel.c │ ├── openblas_set_num_threads.c │ ├── parameter.c │ ├── profile.c │ └── xerbla.c ├── exports/ │ ├── Makefile │ ├── check_objs.sh │ ├── dllinit.c │ ├── gensymbol │ └── gensymbol.pl ├── f_check ├── f_check.pl ├── ftest.f ├── ftest2.f ├── ftest3.f ├── gen_config_h.c ├── getarch.c ├── getarch_2nd.c ├── interface/ │ ├── CMakeLists.txt │ ├── Makefile │ ├── asum.c │ ├── axpby.c │ ├── axpy.c │ ├── bf16dot.c │ ├── bf16to.c │ ├── copy.c │ ├── create │ ├── create.pl │ ├── dot.c │ ├── dsdot.c │ ├── gbmv.c │ ├── geadd.c │ ├── gemm.c │ ├── gemm_batch.c │ ├── gemm_batch_strided.c │ ├── gemmt.c │ ├── gemv.c │ ├── ger.c │ ├── imatcopy.c │ ├── imax.c │ ├── lapack/ │ │ ├── fortran/ │ │ │ └── dlaqr5.f │ │ ├── gesv.c │ │ ├── getf2.c │ │ ├── getrf.c │ │ ├── getrs.c │ │ ├── laed3.c │ │ ├── larf.c.obsolete │ │ ├── laswp.c │ │ ├── lauu2.c │ │ ├── lauum.c │ │ ├── potf2.c │ │ ├── potrf.c │ │ ├── potri.c │ │ ├── trti2.c │ │ ├── trtri.c │ │ ├── trtrs.c │ │ ├── zgetf2.c │ │ ├── zgetrf.c │ │ ├── zgetrs.c │ │ ├── zlaswp.c │ │ ├── zlauu2.c │ │ ├── zlauum.c │ │ ├── zpotf2.c │ │ ├── zpotrf.c │ │ ├── zpotri.c │ │ ├── ztrti2.c │ │ ├── ztrtri.c │ │ └── ztrtrs.c │ ├── max.c │ ├── netlib/ │ │ ├── cgemv.f │ │ ├── dgemv.f │ │ ├── sgemv.f │ │ └── zgemv.f │ ├── nrm2.c │ ├── omatcopy.c │ ├── rot.c │ ├── rotg.c │ ├── rotm.c │ ├── rotmg.c │ ├── sbgemmt.c │ ├── sbgemv.c │ ├── sbmv.c │ ├── scal.c │ ├── sdsdot.c │ ├── spmv.c │ ├── spr.c │ ├── spr2.c │ ├── sum.c │ ├── swap.c │ ├── symm.c │ ├── symv.c │ ├── syr.c │ ├── syr2.c │ ├── syr2k.c │ ├── syrk.c │ ├── tbmv.c │ ├── tbsv.c │ ├── tobf16.c │ ├── tpmv.c │ ├── tpsv.c │ ├── trmv.c │ ├── trsm.c │ ├── trsv.c │ ├── xerbla.c │ ├── zaxpby.c │ ├── zaxpy.c │ ├── zdot.c │ ├── zgbmv.c │ ├── zgeadd.c │ ├── zgemv.c │ ├── zger.c │ ├── zhbmv.c │ ├── zhemv.c │ ├── zher.c │ ├── zher2.c │ ├── zhpmv.c │ ├── zhpr.c │ ├── zhpr2.c │ ├── zimatcopy.c │ ├── zomatcopy.c │ ├── zrot.c │ ├── zrotg.c │ ├── zsbmv.c │ ├── zscal.c │ ├── zspmv.c │ ├── zspr.c │ ├── zspr2.c │ ├── zswap.c │ ├── zsymv.c │ ├── zsyr.c │ ├── zsyr2.c │ ├── ztbmv.c │ ├── ztbsv.c │ ├── ztpmv.c │ ├── ztpsv.c │ ├── ztrmv.c │ └── ztrsv.c ├── kernel/ │ ├── CMakeLists.txt │ ├── Makefile │ ├── Makefile.L1 │ ├── Makefile.L2 │ ├── Makefile.L3 │ ├── Makefile.LA │ ├── alpha/ │ │ ├── KERNEL │ │ ├── Makefile │ │ ├── amax.S │ │ ├── asum.S │ │ ├── axpy.S │ │ ├── cabs.S │ │ ├── cnrm2.S │ │ ├── copy.S │ │ ├── cscal.S │ │ ├── dnrm2.S │ │ ├── dot.S │ │ ├── gemm_beta.S │ │ ├── gemm_kernel_4x4.S │ │ ├── gemv_n.S │ │ ├── gemv_t.S │ │ ├── iamax.S │ │ ├── imax.S │ │ ├── izamax.S │ │ ├── lsame.S │ │ ├── max.S │ │ ├── rot.S │ │ ├── scal.S │ │ ├── snrm2.S │ │ ├── staticbuffer.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── trsm_kernel_4x4_LN.S │ │ ├── trsm_kernel_4x4_LT.S │ │ ├── trsm_kernel_4x4_RT.S │ │ ├── zamax.S │ │ ├── zasum.S │ │ ├── zaxpy.S │ │ ├── zdot.S │ │ ├── zgemm_beta.S │ │ ├── zgemm_kernel_2x2.S │ │ ├── zgemv_n.S │ │ ├── zgemv_t.S │ │ ├── znrm2.S │ │ ├── zrot.S │ │ ├── zscal.S │ │ ├── zsum.S │ │ ├── zswap.S │ │ ├── ztrsm_kernel_2x2_LN.S │ │ ├── ztrsm_kernel_2x2_LT.S │ │ └── ztrsm_kernel_2x2_RT.S │ ├── arm/ │ │ ├── KERNEL │ │ ├── KERNEL.ARMV5 │ │ ├── KERNEL.ARMV6 │ │ ├── KERNEL.ARMV7 │ │ ├── KERNEL.CORTEXA15 │ │ ├── KERNEL.CORTEXA9 │ │ ├── Makefile │ │ ├── amax.c │ │ ├── amax_vfp.S │ │ ├── amin.c │ │ ├── asum.c │ │ ├── asum_vfp.S │ │ ├── axpby.c │ │ ├── axpy.c │ │ ├── axpy_vfp.S │ │ ├── ccopy_vfp.S │ │ ├── cdot_vfp.S │ │ ├── cgemm_kernel_2x2_vfp.S │ │ ├── cgemm_kernel_2x2_vfpv3.S │ │ ├── cgemm_ncopy_2_vfp.S │ │ ├── cgemm_tcopy_2_vfp.S │ │ ├── cgemv_n_vfp.S │ │ ├── cgemv_t_vfp.S │ │ ├── copy.c │ │ ├── ctrmm_kernel_2x2_vfp.S │ │ ├── ctrmm_kernel_2x2_vfpv3.S │ │ ├── dcopy_vfp.S │ │ ├── ddot_vfp.S │ │ ├── dgemm_kernel_4x2_vfp.S │ │ ├── dgemm_kernel_4x4_vfpv3.S │ │ ├── dgemm_ncopy_2_vfp.S │ │ ├── dgemm_ncopy_4_vfp.S │ │ ├── dgemm_tcopy_4_vfp.S │ │ ├── dot.c │ │ ├── dtrmm_kernel_4x2_vfp.S │ │ ├── dtrmm_kernel_4x4_vfpv3.S │ │ ├── gemv_n.c │ │ ├── gemv_n_vfp.S │ │ ├── gemv_n_vfpv3.S │ │ ├── gemv_t.c │ │ ├── gemv_t_vfp.S │ │ ├── gemv_t_vfpv3.S │ │ ├── iamax.c │ │ ├── iamax_vfp.S │ │ ├── iamin.c │ │ ├── imax.c │ │ ├── imin.c │ │ ├── izamax.c │ │ ├── izamin.c │ │ ├── max.c │ │ ├── min.c │ │ ├── nrm2.c │ │ ├── nrm2_vfp.S │ │ ├── nrm2_vfpv3.S │ │ ├── omatcopy_cn.c │ │ ├── omatcopy_ct.c │ │ ├── omatcopy_rn.c │ │ ├── omatcopy_rt.c │ │ ├── rot.c │ │ ├── rot_vfp.S │ │ ├── scal.c │ │ ├── scal_vfp.S │ │ ├── scopy_vfp.S │ │ ├── sdot_vfp.S │ │ ├── sgemm_kernel_4x2_vfp.S │ │ ├── sgemm_kernel_4x4_vfpv3.S │ │ ├── sgemm_ncopy_2_vfp.S │ │ ├── sgemm_ncopy_4_vfp.S │ │ ├── sgemm_tcopy_4_vfp.S │ │ ├── strmm_kernel_4x2_vfp.S │ │ ├── strmm_kernel_4x4_vfpv3.S │ │ ├── sum.c │ │ ├── sum_vfp.S │ │ ├── swap.c │ │ ├── swap_vfp.S │ │ ├── symv_L.c │ │ ├── symv_U.c │ │ ├── zamax.c │ │ ├── zamin.c │ │ ├── zasum.c │ │ ├── zaxpby.c │ │ ├── zaxpy.c │ │ ├── zcopy.c │ │ ├── zcopy_vfp.S │ │ ├── zdot.c │ │ ├── zdot_vfp.S │ │ ├── zgemm_kernel_2x2_vfp.S │ │ ├── zgemm_kernel_2x2_vfpv3.S │ │ ├── zgemm_ncopy_2_vfp.S │ │ ├── zgemm_tcopy_2_vfp.S │ │ ├── zgemv_n.c │ │ ├── zgemv_n_vfp.S │ │ ├── zgemv_t.c │ │ ├── zgemv_t_vfp.S │ │ ├── znrm2.c │ │ ├── zomatcopy_cn.c │ │ ├── zomatcopy_cnc.c │ │ ├── zomatcopy_ct.c │ │ ├── zomatcopy_ctc.c │ │ ├── zomatcopy_rn.c │ │ ├── zomatcopy_rnc.c │ │ ├── zomatcopy_rt.c │ │ ├── zomatcopy_rtc.c │ │ ├── zrot.c │ │ ├── zscal.c │ │ ├── zsum.c │ │ ├── zswap.c │ │ ├── ztrmm_kernel_2x2_vfp.S │ │ └── ztrmm_kernel_2x2_vfpv3.S │ ├── arm64/ │ │ ├── KERNEL │ │ ├── KERNEL.A64FX │ │ ├── KERNEL.AMPERE1 │ │ ├── KERNEL.ARMV8 │ │ ├── KERNEL.ARMV8SVE │ │ ├── KERNEL.ARMV9SME │ │ ├── KERNEL.CORTEXA510 │ │ ├── KERNEL.CORTEXA53 │ │ ├── KERNEL.CORTEXA55 │ │ ├── KERNEL.CORTEXA57 │ │ ├── KERNEL.CORTEXA710 │ │ ├── KERNEL.CORTEXA72 │ │ ├── KERNEL.CORTEXA73 │ │ ├── KERNEL.CORTEXA76 │ │ ├── KERNEL.CORTEXX1 │ │ ├── KERNEL.CORTEXX2 │ │ ├── KERNEL.EMAG8180 │ │ ├── KERNEL.FALKOR │ │ ├── KERNEL.FT2000 │ │ ├── KERNEL.NEOVERSEN1 │ │ ├── KERNEL.NEOVERSEN2 │ │ ├── KERNEL.NEOVERSEV1 │ │ ├── KERNEL.NEOVERSEV2 │ │ ├── KERNEL.THUNDERX │ │ ├── KERNEL.THUNDERX2T99 │ │ ├── KERNEL.THUNDERX3T110 │ │ ├── KERNEL.TSV110 │ │ ├── KERNEL.VORTEX │ │ ├── KERNEL.VORTEXM4 │ │ ├── KERNEL.generic │ │ ├── Makefile │ │ ├── amax.S │ │ ├── asum.S │ │ ├── axpy.S │ │ ├── axpy_sve.c │ │ ├── bgemm_beta_neon.c │ │ ├── bgemm_kernel_2vlx4_neoversev1.c │ │ ├── bgemm_kernel_2vlx4_neoversev1_impl.c │ │ ├── bgemm_ncopy_2vl_neoversev1.c │ │ ├── bgemm_ncopy_4_neoversev1.c │ │ ├── bgemm_tcopy_2vl_neoversev1.c │ │ ├── bgemm_tcopy_4_neoversev1.c │ │ ├── bgemv_n_sve_v3x4.c │ │ ├── casum.S │ │ ├── casum_thunderx2t99.c │ │ ├── cgemm_kernel_4x4.S │ │ ├── cgemm_kernel_8x4.S │ │ ├── cgemm_kernel_8x4_cortexa53.c │ │ ├── cgemm_kernel_8x4_thunderx2t99.S │ │ ├── cgemm_kernel_sve_v1x4.S │ │ ├── cgemm_ncopy_sve_v1.c │ │ ├── cgemm_tcopy_sve_v1.c │ │ ├── copy.S │ │ ├── copy_thunderx2t99.c │ │ ├── csum.S │ │ ├── csum_thunderx2t99.c │ │ ├── ctrmm_kernel_4x4.S │ │ ├── ctrmm_kernel_8x4.S │ │ ├── ctrmm_kernel_sve_v1x4.S │ │ ├── dasum_thunderx2t99.c │ │ ├── daxpy_thunderx.c │ │ ├── daxpy_thunderx2t99.S │ │ ├── ddot_thunderx.c │ │ ├── dgemm_beta.S │ │ ├── dgemm_kernel_4x4.S │ │ ├── dgemm_kernel_4x4_cortexa53.c │ │ ├── dgemm_kernel_4x8.S │ │ ├── dgemm_kernel_8x4.S │ │ ├── dgemm_kernel_8x4_thunderx2t99.S │ │ ├── dgemm_kernel_sve_v1x8.S │ │ ├── dgemm_kernel_sve_v2x8.S │ │ ├── dgemm_ncopy_4.S │ │ ├── dgemm_ncopy_8.S │ │ ├── dgemm_small_kernel_nn_sve.c │ │ ├── dgemm_small_kernel_nt_sve.c │ │ ├── dgemm_small_kernel_tn_sve.c │ │ ├── dgemm_small_kernel_tt_sve.c │ │ ├── dgemm_tcopy_4.S │ │ ├── dgemm_tcopy_8.S │ │ ├── dot.S │ │ ├── dot.c │ │ ├── dot_kernel_asimd.c │ │ ├── dot_kernel_sve.c │ │ ├── dot_kernel_sve_v8.c │ │ ├── dot_thunderx.c │ │ ├── dsum_thunderx2t99.c │ │ ├── dtrmm_kernel_4x4.S │ │ ├── dtrmm_kernel_4x8.S │ │ ├── dtrmm_kernel_8x4.S │ │ ├── dtrmm_kernel_sve_v1x8.S │ │ ├── dznrm2_thunderx2t99.c │ │ ├── dznrm2_thunderx2t99_fast.c │ │ ├── gemm_ncopy_complex_sve_v1x4.c │ │ ├── gemm_ncopy_sve_v1x8.c │ │ ├── gemm_small_kernel_permit_sve.c │ │ ├── gemm_tcopy_complex_sve_v1x4.c │ │ ├── gemm_tcopy_sve_v1x8.c │ │ ├── gemv_n.S │ │ ├── gemv_n_sve.c │ │ ├── gemv_n_sve_v1x3.c │ │ ├── gemv_n_sve_v4x3.c │ │ ├── gemv_t.S │ │ ├── gemv_t_sve.c │ │ ├── gemv_t_sve_v1x3.c │ │ ├── gemv_t_sve_v4x3.c │ │ ├── ger_sve_v1x3.c │ │ ├── iamax.S │ │ ├── iamax_thunderx2t99.c │ │ ├── izamax.S │ │ ├── izamax_thunderx2t99.c │ │ ├── nrm2.S │ │ ├── rot.S │ │ ├── rot.c │ │ ├── rot_kernel_c.c │ │ ├── rot_kernel_sve.c │ │ ├── sasum_thunderx2t99.c │ │ ├── sbgemm_beta_neoversen2.c │ │ ├── sbgemm_beta_neoversev1.c │ │ ├── sbgemm_kernel_8x4_neoversen2.c │ │ ├── sbgemm_kernel_8x4_neoversen2_impl.c │ │ ├── sbgemm_kernel_8x8_neoversen2.c │ │ ├── sbgemm_kernel_8x8_neoversen2_impl.c │ │ ├── sbgemm_ncopy_4_neoversen2.c │ │ ├── sbgemm_ncopy_8_neoversen2.c │ │ ├── sbgemm_tcopy_4_neoversen2.c │ │ ├── sbgemm_tcopy_8_neoversen2.c │ │ ├── sbgemv_n_neon.c │ │ ├── sbgemv_t_bfdot.c │ │ ├── scal.S │ │ ├── scnrm2_thunderx2t99.c │ │ ├── sgemm_beta.S │ │ ├── sgemm_direct_alpha_beta_arm64_sme1.c │ │ ├── sgemm_direct_arm64_sme1.c │ │ ├── sgemm_direct_performant.c │ │ ├── sgemm_direct_sme1_2VLx2VL.S │ │ ├── sgemm_direct_sme1_preprocess.S │ │ ├── sgemm_kernel_16x4.S │ │ ├── sgemm_kernel_16x4_thunderx2t99.S │ │ ├── sgemm_kernel_4x4.S │ │ ├── sgemm_kernel_8x8.S │ │ ├── sgemm_kernel_8x8_cortexa53.S │ │ ├── sgemm_kernel_sve_v1x8.S │ │ ├── sgemm_kernel_sve_v2x8.S │ │ ├── sgemm_ncopy_4.S │ │ ├── sgemm_ncopy_8.S │ │ ├── sgemm_small_kernel_nn_sve.c │ │ ├── sgemm_small_kernel_nt_sve.c │ │ ├── sgemm_small_kernel_tn_sve.c │ │ ├── sgemm_small_kernel_tt_sve.c │ │ ├── sgemm_tcopy_16.S │ │ ├── sgemm_tcopy_8.S │ │ ├── sgemv_n_neon.c │ │ ├── sme_abi.h │ │ ├── ssum_thunderx2t99.c │ │ ├── ssymm_direct_alpha_beta_arm64_sme1.c │ │ ├── ssyr2k_direct_alpha_beta_arm64_sme1.c │ │ ├── ssyrk_direct_alpha_beta_arm64_sme1.c │ │ ├── strmm_direct_arm64_sme1.c │ │ ├── strmm_kernel_16x4.S │ │ ├── strmm_kernel_4x4.S │ │ ├── strmm_kernel_8x8.S │ │ ├── strmm_kernel_8x8_cortexa53.S │ │ ├── strmm_kernel_sve_v1x8.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── swap.c │ │ ├── swap_kernel_c.c │ │ ├── swap_kernel_sve.c │ │ ├── swap_thunderx2t99.S │ │ ├── symm_lcopy_sve.c │ │ ├── symm_ucopy_sve.c │ │ ├── symv_L_asimd_4x4.c │ │ ├── symv_L_sve_v1x4.c │ │ ├── symv_U_asimd_4x4.c │ │ ├── symv_U_sve_v1x4.c │ │ ├── symv_microk_asimd_4x4.c │ │ ├── symv_microk_sve_v1x4.c │ │ ├── trmm_lncopy_sve_v1.c │ │ ├── trmm_ltcopy_sve_v1.c │ │ ├── trmm_uncopy_sve_v1.c │ │ ├── trmm_utcopy_sve_v1.c │ │ ├── trsm_kernel_LN_sve.c │ │ ├── trsm_kernel_LT_sve.c │ │ ├── trsm_kernel_RN_sve.c │ │ ├── trsm_kernel_RT_sve.c │ │ ├── trsm_lncopy_sve.c │ │ ├── trsm_ltcopy_sve.c │ │ ├── trsm_uncopy_sve.c │ │ ├── trsm_utcopy_sve.c │ │ ├── zamax.S │ │ ├── zasum.S │ │ ├── zasum_thunderx2t99.c │ │ ├── zaxpy.S │ │ ├── zdot.S │ │ ├── zdot_thunderx2t99.c │ │ ├── zgemm_kernel_4x4.S │ │ ├── zgemm_kernel_4x4_cortexa53.c │ │ ├── zgemm_kernel_4x4_thunderx2t99.S │ │ ├── zgemm_kernel_sve_v1x4.S │ │ ├── zgemm_ncopy_sve_v1.c │ │ ├── zgemm_tcopy_sve_v1.c │ │ ├── zgemv_n.S │ │ ├── zgemv_t.S │ │ ├── zhemm_ltcopy_sve.c │ │ ├── zhemm_utcopy_sve.c │ │ ├── znrm2.S │ │ ├── zrot.S │ │ ├── zscal.S │ │ ├── zsum.S │ │ ├── zsum_thunderx2t99.c │ │ ├── zsymm_lcopy_sve.c │ │ ├── zsymm_ucopy_sve.c │ │ ├── ztrmm_kernel_4x4.S │ │ ├── ztrmm_kernel_sve_v1x4.S │ │ ├── ztrmm_lncopy_sve_v1.c │ │ ├── ztrmm_ltcopy_sve_v1.c │ │ ├── ztrmm_uncopy_sve_v1.c │ │ ├── ztrmm_utcopy_sve_v1.c │ │ ├── ztrsm_lncopy_sve.c │ │ ├── ztrsm_ltcopy_sve.c │ │ ├── ztrsm_uncopy_sve.c │ │ └── ztrsm_utcopy_sve.c │ ├── csky/ │ │ ├── KERNEL │ │ └── Makefile │ ├── e2k/ │ │ ├── KERNEL │ │ └── Makefile │ ├── generic/ │ │ ├── cabs.c │ │ ├── conversion_macros.h │ │ ├── dot.c │ │ ├── geadd.c │ │ ├── gemm_beta.c │ │ ├── gemm_ncopy_1.c │ │ ├── gemm_ncopy_16.c │ │ ├── gemm_ncopy_2.c │ │ ├── gemm_ncopy_4.c │ │ ├── gemm_ncopy_6.c │ │ ├── gemm_ncopy_8.c │ │ ├── gemm_small_matrix_kernel_nn.c │ │ ├── gemm_small_matrix_kernel_nt.c │ │ ├── gemm_small_matrix_kernel_tn.c │ │ ├── gemm_small_matrix_kernel_tt.c │ │ ├── gemm_small_matrix_permit.c │ │ ├── gemm_tcopy_1.c │ │ ├── gemm_tcopy_16.c │ │ ├── gemm_tcopy_2.c │ │ ├── gemm_tcopy_4.c │ │ ├── gemm_tcopy_6.c │ │ ├── gemm_tcopy_8.c │ │ ├── gemmkernel_2x2.c │ │ ├── gemv_n.c │ │ ├── gemv_t.c │ │ ├── ger.c │ │ ├── imatcopy_cn.c │ │ ├── imatcopy_ct.c │ │ ├── imatcopy_rn.c │ │ ├── imatcopy_rt.c │ │ ├── laswp_ncopy_1.c │ │ ├── laswp_ncopy_2.c │ │ ├── laswp_ncopy_4.c │ │ ├── laswp_ncopy_6.c │ │ ├── laswp_ncopy_8.c │ │ ├── lsame.c │ │ ├── neg_tcopy_1.c │ │ ├── neg_tcopy_16.c │ │ ├── neg_tcopy_2.c │ │ ├── neg_tcopy_4.c │ │ ├── neg_tcopy_8.c │ │ ├── rotm.c │ │ ├── scal.c │ │ ├── symm_lcopy_1.c │ │ ├── symm_lcopy_16.c │ │ ├── symm_lcopy_2.c │ │ ├── symm_lcopy_4.c │ │ ├── symm_lcopy_6.c │ │ ├── symm_lcopy_8.c │ │ ├── symm_ucopy_1.c │ │ ├── symm_ucopy_16.c │ │ ├── symm_ucopy_2.c │ │ ├── symm_ucopy_4.c │ │ ├── symm_ucopy_6.c │ │ ├── symm_ucopy_8.c │ │ ├── symv_k.c │ │ ├── trmm_lncopy_1.c │ │ ├── trmm_lncopy_16.c │ │ ├── trmm_lncopy_2.c │ │ ├── trmm_lncopy_4.c │ │ ├── trmm_lncopy_6.c │ │ ├── trmm_lncopy_8.c │ │ ├── trmm_ltcopy_1.c │ │ ├── trmm_ltcopy_16.c │ │ ├── trmm_ltcopy_2.c │ │ ├── trmm_ltcopy_4.c │ │ ├── trmm_ltcopy_6.c │ │ ├── trmm_ltcopy_8.c │ │ ├── trmm_uncopy_1.c │ │ ├── trmm_uncopy_16.c │ │ ├── trmm_uncopy_2.c │ │ ├── trmm_uncopy_4.c │ │ ├── trmm_uncopy_6.c │ │ ├── trmm_uncopy_8.c │ │ ├── trmm_utcopy_1.c │ │ ├── trmm_utcopy_16.c │ │ ├── trmm_utcopy_2.c │ │ ├── trmm_utcopy_4.c │ │ ├── trmm_utcopy_6.c │ │ ├── trmm_utcopy_8.c │ │ ├── trmmkernel_16x2.c │ │ ├── trmmkernel_16x4.c │ │ ├── trmmkernel_16x8.c │ │ ├── trmmkernel_2x2.c │ │ ├── trmmkernel_4x4.c │ │ ├── trmmkernel_4x8.c │ │ ├── trmmkernel_8x2.c │ │ ├── trmmkernel_8x4.c │ │ ├── trmmkernel_8x8.c │ │ ├── trsm_kernel_LN.c │ │ ├── trsm_kernel_LT.c │ │ ├── trsm_kernel_RN.c │ │ ├── trsm_kernel_RT.c │ │ ├── trsm_lncopy_1.c │ │ ├── trsm_lncopy_16.c │ │ ├── trsm_lncopy_2.c │ │ ├── trsm_lncopy_4.c │ │ ├── trsm_lncopy_6.c │ │ ├── trsm_lncopy_8.c │ │ ├── trsm_ltcopy_1.c │ │ ├── trsm_ltcopy_16.c │ │ ├── trsm_ltcopy_2.c │ │ ├── trsm_ltcopy_4.c │ │ ├── trsm_ltcopy_6.c │ │ ├── trsm_ltcopy_8.c │ │ ├── trsm_uncopy_1.c │ │ ├── trsm_uncopy_16.c │ │ ├── trsm_uncopy_2.c │ │ ├── trsm_uncopy_4.c │ │ ├── trsm_uncopy_6.c │ │ ├── trsm_uncopy_8.c │ │ ├── trsm_utcopy_1.c │ │ ├── trsm_utcopy_16.c │ │ ├── trsm_utcopy_2.c │ │ ├── trsm_utcopy_4.c │ │ ├── trsm_utcopy_6.c │ │ ├── trsm_utcopy_8.c │ │ ├── zgeadd.c │ │ ├── zgemm3m_ncopy_1.c │ │ ├── zgemm3m_ncopy_2.c │ │ ├── zgemm3m_ncopy_4.c │ │ ├── zgemm3m_ncopy_8.c │ │ ├── zgemm3m_tcopy_1.c │ │ ├── zgemm3m_tcopy_2.c │ │ ├── zgemm3m_tcopy_4.c │ │ ├── zgemm3m_tcopy_8.c │ │ ├── zgemm3mkernel_dump.c │ │ ├── zgemm_beta.c │ │ ├── zgemm_ncopy_1.c │ │ ├── zgemm_ncopy_16.c │ │ ├── zgemm_ncopy_2.c │ │ ├── zgemm_ncopy_4.c │ │ ├── zgemm_ncopy_4_sandy.c │ │ ├── zgemm_ncopy_8.c │ │ ├── zgemm_ncopy_8_sandy.c │ │ ├── zgemm_small_matrix_kernel_nn.c │ │ ├── zgemm_small_matrix_kernel_nt.c │ │ ├── zgemm_small_matrix_kernel_tn.c │ │ ├── zgemm_small_matrix_kernel_tt.c │ │ ├── zgemm_small_matrix_permit.c │ │ ├── zgemm_tcopy_1.c │ │ ├── zgemm_tcopy_2.c │ │ ├── zgemm_tcopy_4.c │ │ ├── zgemm_tcopy_4_sandy.c │ │ ├── zgemm_tcopy_8.c │ │ ├── zgemm_tcopy_8_sandy.c │ │ ├── zgemmkernel_2x2.c │ │ ├── zger.c │ │ ├── zhemm3m_lcopy_1.c │ │ ├── zhemm3m_lcopy_2.c │ │ ├── zhemm3m_lcopy_4.c │ │ ├── zhemm3m_lcopy_8.c │ │ ├── zhemm3m_ucopy_1.c │ │ ├── zhemm3m_ucopy_2.c │ │ ├── zhemm3m_ucopy_4.c │ │ ├── zhemm3m_ucopy_8.c │ │ ├── zhemm_ltcopy_1.c │ │ ├── zhemm_ltcopy_16.c │ │ ├── zhemm_ltcopy_2.c │ │ ├── zhemm_ltcopy_4.c │ │ ├── zhemm_ltcopy_8.c │ │ ├── zhemm_utcopy_1.c │ │ ├── zhemm_utcopy_16.c │ │ ├── zhemm_utcopy_2.c │ │ ├── zhemm_utcopy_4.c │ │ ├── zhemm_utcopy_8.c │ │ ├── zhemv_k.c │ │ ├── zimatcopy_cn.c │ │ ├── zimatcopy_cnc.c │ │ ├── zimatcopy_ct.c │ │ ├── zimatcopy_ctc.c │ │ ├── zimatcopy_rn.c │ │ ├── zimatcopy_rnc.c │ │ ├── zimatcopy_rt.c │ │ ├── zimatcopy_rtc.c │ │ ├── zlaswp_ncopy_1.c │ │ ├── zlaswp_ncopy_2.c │ │ ├── zlaswp_ncopy_4.c │ │ ├── zlaswp_ncopy_8.c │ │ ├── zneg_tcopy_1.c │ │ ├── zneg_tcopy_16.c │ │ ├── zneg_tcopy_2.c │ │ ├── zneg_tcopy_4.c │ │ ├── zneg_tcopy_8.c │ │ ├── zsymm3m_lcopy_1.c │ │ ├── zsymm3m_lcopy_2.c │ │ ├── zsymm3m_lcopy_4.c │ │ ├── zsymm3m_lcopy_8.c │ │ ├── zsymm3m_ucopy_1.c │ │ ├── zsymm3m_ucopy_2.c │ │ ├── zsymm3m_ucopy_4.c │ │ ├── zsymm3m_ucopy_8.c │ │ ├── zsymm_lcopy_1.c │ │ ├── zsymm_lcopy_16.c │ │ ├── zsymm_lcopy_2.c │ │ ├── zsymm_lcopy_4.c │ │ ├── zsymm_lcopy_8.c │ │ ├── zsymm_ucopy_1.c │ │ ├── zsymm_ucopy_16.c │ │ ├── zsymm_ucopy_2.c │ │ ├── zsymm_ucopy_4.c │ │ ├── zsymm_ucopy_8.c │ │ ├── zsymv_k.c │ │ ├── ztrmm_lncopy_1.c │ │ ├── ztrmm_lncopy_16.c │ │ ├── ztrmm_lncopy_2.c │ │ ├── ztrmm_lncopy_4.c │ │ ├── ztrmm_lncopy_8.c │ │ ├── ztrmm_ltcopy_1.c │ │ ├── ztrmm_ltcopy_16.c │ │ ├── ztrmm_ltcopy_2.c │ │ ├── ztrmm_ltcopy_4.c │ │ ├── ztrmm_ltcopy_8.c │ │ ├── ztrmm_uncopy_1.c │ │ ├── ztrmm_uncopy_16.c │ │ ├── ztrmm_uncopy_2.c │ │ ├── ztrmm_uncopy_4.c │ │ ├── ztrmm_uncopy_8.c │ │ ├── ztrmm_utcopy_1.c │ │ ├── ztrmm_utcopy_16.c │ │ ├── ztrmm_utcopy_2.c │ │ ├── ztrmm_utcopy_4.c │ │ ├── ztrmm_utcopy_8.c │ │ ├── ztrmmkernel_2x2.c │ │ ├── ztrmmkernel_4x4.c │ │ ├── ztrsm_lncopy_1.c │ │ ├── ztrsm_lncopy_16.c │ │ ├── ztrsm_lncopy_2.c │ │ ├── ztrsm_lncopy_4.c │ │ ├── ztrsm_lncopy_8.c │ │ ├── ztrsm_ltcopy_1.c │ │ ├── ztrsm_ltcopy_16.c │ │ ├── ztrsm_ltcopy_2.c │ │ ├── ztrsm_ltcopy_4.c │ │ ├── ztrsm_ltcopy_8.c │ │ ├── ztrsm_uncopy_1.c │ │ ├── ztrsm_uncopy_16.c │ │ ├── ztrsm_uncopy_2.c │ │ ├── ztrsm_uncopy_4.c │ │ ├── ztrsm_uncopy_8.c │ │ ├── ztrsm_utcopy_1.c │ │ ├── ztrsm_utcopy_16.c │ │ ├── ztrsm_utcopy_2.c │ │ ├── ztrsm_utcopy_4.c │ │ └── ztrsm_utcopy_8.c │ ├── ia64/ │ │ ├── KERNEL │ │ ├── Makefile │ │ ├── amax.S │ │ ├── asum.S │ │ ├── cabs.S │ │ ├── caxpy.S │ │ ├── copy.S │ │ ├── daxpy.S │ │ ├── ddot.S │ │ ├── gemm_beta.S │ │ ├── gemm_kernel.S │ │ ├── gemm_ncopy.S │ │ ├── gemm_tcopy.S │ │ ├── gemv_n.S │ │ ├── gemv_t.S │ │ ├── iamax.S │ │ ├── izamax.S │ │ ├── lsame.S │ │ ├── nrm2.S │ │ ├── qaxpy.S │ │ ├── qcopy.S │ │ ├── qdot.S │ │ ├── qgemm_kernel.S │ │ ├── qgemv_n.S │ │ ├── qgemv_t.S │ │ ├── qscal.S │ │ ├── rot.S │ │ ├── saxpy.S │ │ ├── scal.S │ │ ├── sdot.S │ │ ├── sgemv_n.S │ │ ├── staticbuffer.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── symv_U.S │ │ ├── trsm_kernel_LN.S │ │ ├── trsm_kernel_LT.S │ │ ├── trsm_kernel_RT.S │ │ ├── xcopy.S │ │ ├── xdot.S │ │ ├── zaxpy.S │ │ ├── zcopy.S │ │ ├── zdot.S │ │ ├── zgemm3m_kernel.S │ │ ├── zgemm_beta.S │ │ ├── zgemm_kernel.S │ │ ├── zgemm_ncopy.S │ │ ├── zgemm_tcopy.S │ │ ├── zgemv_n.S │ │ ├── zgemv_t.S │ │ ├── zrot.S │ │ ├── zscal.S │ │ ├── zswap.S │ │ ├── ztrsm_kernel_LN.S │ │ ├── ztrsm_kernel_LT.S │ │ └── ztrsm_kernel_RT.S │ ├── loongarch64/ │ │ ├── KERNEL │ │ ├── KERNEL.LA264 │ │ ├── KERNEL.LA464 │ │ ├── KERNEL.LA64_GENERIC │ │ ├── KERNEL.generic │ │ ├── Makefile │ │ ├── amax.S │ │ ├── amax_lasx.S │ │ ├── amax_lsx.S │ │ ├── amin.S │ │ ├── amin_lasx.S │ │ ├── amin_lsx.S │ │ ├── asum.S │ │ ├── asum_lasx.S │ │ ├── asum_lsx.S │ │ ├── axpby_lasx.S │ │ ├── axpby_lsx.S │ │ ├── axpy_lasx.S │ │ ├── axpy_lsx.S │ │ ├── camax_lasx.S │ │ ├── camax_lsx.S │ │ ├── camin_lasx.S │ │ ├── camin_lsx.S │ │ ├── casum_lasx.S │ │ ├── casum_lsx.S │ │ ├── caxpby_lasx.S │ │ ├── caxpby_lsx.S │ │ ├── caxpy_lasx.S │ │ ├── caxpy_lsx.S │ │ ├── ccopy_lasx.S │ │ ├── ccopy_lsx.S │ │ ├── cdot_lasx.S │ │ ├── cdot_lsx.S │ │ ├── cgemm_kernel_16x4_lasx.S │ │ ├── cgemm_kernel_2x2_lasx.S │ │ ├── cgemm_kernel_2x2_lsx.S │ │ ├── cgemm_kernel_8x4_lsx.S │ │ ├── cgemm_ncopy_16_lasx.S │ │ ├── cgemm_ncopy_2_lasx.S │ │ ├── cgemm_ncopy_2_lsx.S │ │ ├── cgemm_ncopy_4_lasx.S │ │ ├── cgemm_ncopy_4_lsx.S │ │ ├── cgemm_ncopy_8_lsx.S │ │ ├── cgemm_tcopy_16_lasx.S │ │ ├── cgemm_tcopy_2_lasx.S │ │ ├── cgemm_tcopy_2_lsx.S │ │ ├── cgemm_tcopy_4_lasx.S │ │ ├── cgemm_tcopy_4_lsx.S │ │ ├── cgemm_tcopy_8_lsx.S │ │ ├── cgemv_n_4_lsx.S │ │ ├── cgemv_n_8_lasx.S │ │ ├── cgemv_t_4_lsx.S │ │ ├── cgemv_t_8_lasx.S │ │ ├── cnrm2.S │ │ ├── cnrm2_lasx.S │ │ ├── cnrm2_lsx.S │ │ ├── copy.S │ │ ├── copy_lasx.S │ │ ├── copy_lsx.S │ │ ├── crot_lasx.S │ │ ├── crot_lsx.S │ │ ├── cscal_lasx.S │ │ ├── cscal_lsx.S │ │ ├── csum_lasx.S │ │ ├── csum_lsx.S │ │ ├── cswap_lasx.S │ │ ├── cswap_lsx.S │ │ ├── dgemm_kernel_16x4.S │ │ ├── dgemm_kernel_16x6.S │ │ ├── dgemm_kernel_8x4.S │ │ ├── dgemm_ncopy_16.S │ │ ├── dgemm_ncopy_4.S │ │ ├── dgemm_ncopy_4_lsx.S │ │ ├── dgemm_ncopy_8_lsx.S │ │ ├── dgemm_small_kernel_nn_lasx.S │ │ ├── dgemm_small_kernel_nt_lasx.S │ │ ├── dgemm_small_kernel_tn_lasx.S │ │ ├── dgemm_small_kernel_tt_lasx.S │ │ ├── dgemm_small_matrix_permit.c │ │ ├── dgemm_tcopy_16.S │ │ ├── dgemm_tcopy_4.S │ │ ├── dgemm_tcopy_4_lsx.S │ │ ├── dgemm_tcopy_6.S │ │ ├── dgemm_tcopy_8_lsx.S │ │ ├── dgemv_n_8_lasx.S │ │ ├── dgemv_n_lsx.S │ │ ├── dgemv_t_8_lasx.S │ │ ├── dgemv_t_lsx.S │ │ ├── dnrm2.S │ │ ├── dnrm2_lasx.S │ │ ├── dnrm2_lsx.S │ │ ├── dot.S │ │ ├── dot_lasx.S │ │ ├── dot_lsx.S │ │ ├── dscal_lasx.S │ │ ├── dscal_lsx.S │ │ ├── dsymv_L_lasx.S │ │ ├── dsymv_L_lsx.S │ │ ├── dsymv_U_lasx.S │ │ ├── dsymv_U_lsx.S │ │ ├── dtrsm_kernel_LN_16x4_lasx.S │ │ ├── dtrsm_kernel_LT_16x4_lasx.S │ │ ├── dtrsm_kernel_RN_16x4_lasx.S │ │ ├── dtrsm_kernel_RT_16x4_lasx.S │ │ ├── dtrsm_kernel_macro.S │ │ ├── gemm_kernel.S │ │ ├── gemm_ncopy_6.prefx.c │ │ ├── gemv_n.S │ │ ├── gemv_t.S │ │ ├── iamax.S │ │ ├── iamax_lasx.S │ │ ├── iamax_lsx.S │ │ ├── iamin.S │ │ ├── iamin_lasx.S │ │ ├── iamin_lsx.S │ │ ├── icamax_lasx.S │ │ ├── icamax_lsx.S │ │ ├── icamin_lasx.S │ │ ├── icamin_lsx.S │ │ ├── imax_lasx.S │ │ ├── imax_lsx.S │ │ ├── imin_lasx.S │ │ ├── imin_lsx.S │ │ ├── izamax.S │ │ ├── izamin.S │ │ ├── loongarch64_asm.S │ │ ├── max.S │ │ ├── max_lasx.S │ │ ├── max_lsx.S │ │ ├── min.S │ │ ├── min_lasx.S │ │ ├── min_lsx.S │ │ ├── rot_lasx.S │ │ ├── rot_lsx.S │ │ ├── scal.S │ │ ├── scal_lasx.S │ │ ├── scal_lsx.S │ │ ├── sgemm_kernel_16x8_lasx.S │ │ ├── sgemm_ncopy_16_lasx.S │ │ ├── sgemm_ncopy_8_lasx.S │ │ ├── sgemm_tcopy_16_lasx.S │ │ ├── sgemm_tcopy_8_lasx.S │ │ ├── sgemv_n_8_lasx.S │ │ ├── sgemv_n_lsx.S │ │ ├── sgemv_t_8_lasx.S │ │ ├── sgemv_t_lsx.S │ │ ├── snrm2.S │ │ ├── snrm2_lasx.S │ │ ├── snrm2_lsx.S │ │ ├── somatcopy_cn_lasx.c │ │ ├── somatcopy_ct_lasx.c │ │ ├── somatcopy_rn_lasx.c │ │ ├── somatcopy_rt_lasx.c │ │ ├── ssymv_L_lasx.S │ │ ├── ssymv_L_lsx.S │ │ ├── ssymv_U_lasx.S │ │ ├── ssymv_U_lsx.S │ │ ├── sum_lasx.S │ │ ├── sum_lsx.S │ │ ├── swap.S │ │ ├── swap_lasx.S │ │ ├── swap_lsx.S │ │ ├── trsm_kernel_LN.S │ │ ├── trsm_kernel_LN_UNROLLN6.c │ │ ├── trsm_kernel_LT.S │ │ ├── trsm_kernel_LT_UNROLLN6.c │ │ ├── trsm_kernel_RN_UNROLLN6.c │ │ ├── trsm_kernel_RT.S │ │ ├── trsm_kernel_RT_UNROLLN6.c │ │ ├── zamax.S │ │ ├── zamin.S │ │ ├── zasum.S │ │ ├── zcopy.S │ │ ├── zdot.S │ │ ├── zgemm3m_kernel.S │ │ ├── zgemm_kernel.S │ │ ├── zgemm_kernel_2x2.S │ │ ├── zgemm_kernel_2x2_lasx.S │ │ ├── zgemm_kernel_4x4_lsx.S │ │ ├── zgemm_kernel_8x4_lasx.S │ │ ├── zgemm_ncopy_2_lasx.S │ │ ├── zgemm_ncopy_4_lasx.S │ │ ├── zgemm_ncopy_4_lsx.S │ │ ├── zgemm_ncopy_8_lasx.S │ │ ├── zgemm_tcopy_2_lasx.S │ │ ├── zgemm_tcopy_4_lasx.S │ │ ├── zgemm_tcopy_4_lsx.S │ │ ├── zgemm_tcopy_8_lasx.S │ │ ├── zgemv_n.S │ │ ├── zgemv_n_2_lsx.S │ │ ├── zgemv_n_4_lasx.S │ │ ├── zgemv_t.S │ │ ├── zgemv_t_2_lsx.S │ │ ├── zgemv_t_4_lasx.S │ │ ├── znrm2.S │ │ ├── znrm2_lasx.S │ │ ├── znrm2_lsx.S │ │ ├── zscal.S │ │ ├── ztrsm_kernel_LT.S │ │ └── ztrsm_kernel_RT.S │ ├── mips/ │ │ ├── KERNEL │ │ ├── KERNEL.MIPS1004K │ │ ├── KERNEL.MIPS24K │ │ ├── KERNEL.P5600 │ │ ├── KERNEL.generic │ │ ├── Makefile │ │ ├── amax.c │ │ ├── amin.c │ │ ├── asum.c │ │ ├── axpby.c │ │ ├── axpy.c │ │ ├── casum_msa.c │ │ ├── caxpy_msa.c │ │ ├── ccopy_msa.c │ │ ├── cdot_msa.c │ │ ├── cgemm_kernel_8x4_msa.c │ │ ├── cgemm_ncopy_4_msa.c │ │ ├── cgemm_ncopy_8_msa.c │ │ ├── cgemm_tcopy_4_msa.c │ │ ├── cgemm_tcopy_8_msa.c │ │ ├── cgemv_n_msa.c │ │ ├── cgemv_t_msa.c │ │ ├── copy.c │ │ ├── crot_msa.c │ │ ├── cscal_msa.c │ │ ├── cswap_msa.c │ │ ├── dasum_msa.c │ │ ├── daxpy_msa.c │ │ ├── dcopy_msa.c │ │ ├── ddot_msa.c │ │ ├── dgemm_kernel_8x4_msa.c │ │ ├── dgemm_ncopy_4_msa.c │ │ ├── dgemm_ncopy_8_msa.c │ │ ├── dgemm_tcopy_4_msa.c │ │ ├── dgemm_tcopy_8_msa.c │ │ ├── dgemv_n_msa.c │ │ ├── dgemv_t_msa.c │ │ ├── dot.c │ │ ├── drot_msa.c │ │ ├── dscal_msa.c │ │ ├── dswap_msa.c │ │ ├── dtrsm_kernel_LN_8x4_msa.c │ │ ├── dtrsm_kernel_LT_8x4_msa.c │ │ ├── dtrsm_kernel_RN_8x4_msa.c │ │ ├── dtrsm_kernel_RT_8x4_msa.c │ │ ├── gemv_n.c │ │ ├── gemv_t.c │ │ ├── iamax.c │ │ ├── iamin.c │ │ ├── imax.c │ │ ├── imin.c │ │ ├── izamax.c │ │ ├── izamin.c │ │ ├── macros_msa.h │ │ ├── max.c │ │ ├── min.c │ │ ├── nrm2.c │ │ ├── omatcopy_cn.c │ │ ├── omatcopy_ct.c │ │ ├── omatcopy_rn.c │ │ ├── omatcopy_rt.c │ │ ├── rot.c │ │ ├── sasum_msa.c │ │ ├── saxpy_msa.c │ │ ├── scal.c │ │ ├── scopy_msa.c │ │ ├── sdot_msa.c │ │ ├── sgemm_kernel_8x8_msa.c │ │ ├── sgemm_ncopy_8_msa.c │ │ ├── sgemm_tcopy_8_msa.c │ │ ├── sgemv_n_msa.c │ │ ├── sgemv_t_msa.c │ │ ├── srot_msa.c │ │ ├── sscal_msa.c │ │ ├── sswap_msa.c │ │ ├── strsm_kernel_LN_8x8_msa.c │ │ ├── strsm_kernel_LT_8x8_msa.c │ │ ├── strsm_kernel_RN_8x8_msa.c │ │ ├── strsm_kernel_RT_8x8_msa.c │ │ ├── sum.c │ │ ├── swap.c │ │ ├── symv_L.c │ │ ├── symv_U.c │ │ ├── zamax.c │ │ ├── zamin.c │ │ ├── zasum.c │ │ ├── zasum_msa.c │ │ ├── zaxpby.c │ │ ├── zaxpy.c │ │ ├── zaxpy_msa.c │ │ ├── zcopy.c │ │ ├── zcopy_msa.c │ │ ├── zdot.c │ │ ├── zdot_msa.c │ │ ├── zgemm_kernel_4x4_msa.c │ │ ├── zgemm_ncopy_4_msa.c │ │ ├── zgemm_tcopy_4_msa.c │ │ ├── zgemv_n.c │ │ ├── zgemv_n_msa.c │ │ ├── zgemv_t.c │ │ ├── zgemv_t_msa.c │ │ ├── znrm2.c │ │ ├── zomatcopy_cn.c │ │ ├── zomatcopy_cnc.c │ │ ├── zomatcopy_ct.c │ │ ├── zomatcopy_ctc.c │ │ ├── zomatcopy_rn.c │ │ ├── zomatcopy_rnc.c │ │ ├── zomatcopy_rt.c │ │ ├── zomatcopy_rtc.c │ │ ├── zrot.c │ │ ├── zrot_msa.c │ │ ├── zscal.c │ │ ├── zscal_msa.c │ │ ├── zsum.c │ │ ├── zswap.c │ │ └── zswap_msa.c │ ├── mips64/ │ │ ├── KERNEL │ │ ├── KERNEL.I6400 │ │ ├── KERNEL.I6500 │ │ ├── KERNEL.LOONGSON3R3 │ │ ├── KERNEL.LOONGSON3R4 │ │ ├── KERNEL.MIPS64_GENERIC │ │ ├── KERNEL.P6600 │ │ ├── KERNEL.generic │ │ ├── Makefile │ │ ├── amax.S │ │ ├── amin.S │ │ ├── asum.S │ │ ├── axpy.S │ │ ├── axpy_loongson3a.S │ │ ├── cgemm_kernel_loongson3a_2x2.S │ │ ├── cgemm_kernel_loongson3a_4x2_ps.S │ │ ├── cgemm_kernel_loongson3b_2x2.S │ │ ├── cnrm2.S │ │ ├── copy.S │ │ ├── daxpy_loongson3a_simd.S │ │ ├── dgemm_kernel_loongson3a_4x4.S │ │ ├── dgemm_kernel_loongson3b_4x4.S │ │ ├── dnrm2.S │ │ ├── dot.S │ │ ├── gemm_beta.S │ │ ├── gemm_kernel.S │ │ ├── gemv_n.S │ │ ├── gemv_n_loongson3a.c │ │ ├── gemv_t.S │ │ ├── gemv_t_loongson3a.c │ │ ├── iamax.S │ │ ├── iamin.S │ │ ├── imax.S │ │ ├── imin.S │ │ ├── izamax.S │ │ ├── izamin.S │ │ ├── max.S │ │ ├── min.S │ │ ├── rot.S │ │ ├── scal.S │ │ ├── sgemm_kernel_8x4_ps.S │ │ ├── sgemm_kernel_loongson3a_4x4.S │ │ ├── sgemm_kernel_loongson3b_4x4.S │ │ ├── snrm2.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── symv_L.S │ │ ├── symv_U.S │ │ ├── trsm_kernel_LN.S │ │ ├── trsm_kernel_LN_loongson3a.S │ │ ├── trsm_kernel_LT.S │ │ ├── trsm_kernel_LT_loongson3a.S │ │ ├── trsm_kernel_RN_loongson3a.S │ │ ├── trsm_kernel_RT.S │ │ ├── trsm_kernel_RT_loongson3a.S │ │ ├── zamax.S │ │ ├── zamin.S │ │ ├── zasum.S │ │ ├── zaxpy.S │ │ ├── zcopy.S │ │ ├── zdot.S │ │ ├── zgemm3m_kernel.S │ │ ├── zgemm_kernel.S │ │ ├── zgemm_kernel_loongson3a_2x2.S │ │ ├── zgemm_kernel_loongson3b_2x2.S │ │ ├── zgemv_n.S │ │ ├── zgemv_n_loongson3a.c │ │ ├── zgemv_t.S │ │ ├── zgemv_t_loongson3a.c │ │ ├── znrm2.S │ │ ├── zrot.S │ │ ├── zscal.S │ │ ├── zsum.S │ │ ├── zswap.S │ │ ├── zsymv_L.S │ │ ├── zsymv_U.S │ │ ├── ztrsm_kernel_LT.S │ │ └── ztrsm_kernel_RT.S │ ├── power/ │ │ ├── KERNEL │ │ ├── KERNEL.CELL │ │ ├── KERNEL.POWER10 │ │ ├── KERNEL.POWER3 │ │ ├── KERNEL.POWER4 │ │ ├── KERNEL.POWER5 │ │ ├── KERNEL.POWER6 │ │ ├── KERNEL.POWER8 │ │ ├── KERNEL.POWER9 │ │ ├── KERNEL.PPC440 │ │ ├── KERNEL.PPC440FP2 │ │ ├── KERNEL.PPC970 │ │ ├── KERNEL.PPCG4 │ │ ├── Makefile │ │ ├── amax.S │ │ ├── amax_cell.S │ │ ├── amax_hummer.S │ │ ├── amax_ppc440.S │ │ ├── amin.S │ │ ├── amin_cell.S │ │ ├── amin_hummer.S │ │ ├── amin_ppc440.S │ │ ├── asum.S │ │ ├── asum_cell.S │ │ ├── asum_hummer.S │ │ ├── asum_ppc440.S │ │ ├── axpy.S │ │ ├── axpy_hummer.S │ │ ├── axpy_ppc440.S │ │ ├── cabs.S │ │ ├── casum.c │ │ ├── casum_microk_power8.c │ │ ├── caxpy.c │ │ ├── caxpy_microk_power10.c │ │ ├── caxpy_power10.c │ │ ├── caxpy_power8.S │ │ ├── caxpy_power9.S │ │ ├── ccopy.c │ │ ├── ccopy_microk_power8.c │ │ ├── ccopy_power10.c │ │ ├── cdot.c │ │ ├── cdot_microk_power10.c │ │ ├── cdot_power9.S │ │ ├── cgemm_kernel_8x4_power8.S │ │ ├── cgemm_kernel_power10.S │ │ ├── cgemm_kernel_power10.c │ │ ├── cgemm_kernel_power9.S │ │ ├── cgemm_logic_8x4_power8.S │ │ ├── cgemm_logic_power10.S │ │ ├── cgemm_logic_power9.S │ │ ├── cgemm_macros_8x4_power8.S │ │ ├── cgemm_macros_power10.S │ │ ├── cgemm_macros_power9.S │ │ ├── cgemm_tcopy_8_power8.S │ │ ├── cgemm_tcopy_logic_8_power8.S │ │ ├── cgemm_tcopy_macros_8_power8.S │ │ ├── cgemv_n.c │ │ ├── cgemv_t.c │ │ ├── cnrm2.S │ │ ├── cnrm2_hummer.S │ │ ├── cnrm2_ppc440.S │ │ ├── copy.S │ │ ├── copy_hummer.S │ │ ├── copy_microk_power10.c │ │ ├── crot.c │ │ ├── cscal_microk_power10.c │ │ ├── cswap.c │ │ ├── cswap_microk_power10.c │ │ ├── cswap_microk_power8.c │ │ ├── ctrmm_kernel_8x4_power8.S │ │ ├── ctrmm_logic_8x4_power8.S │ │ ├── ctrmm_macros_8x4_power8.S │ │ ├── dasum.c │ │ ├── dasum_microk_power10.c │ │ ├── dasum_microk_power8.c │ │ ├── daxpy.c │ │ ├── daxpy_microk_power10.c │ │ ├── daxpy_microk_power8.c │ │ ├── daxpy_power10.c │ │ ├── dcopy.c │ │ ├── dcopy_microk_power8.c │ │ ├── dcopy_power10.c │ │ ├── ddot.c │ │ ├── ddot_microk_power10.c │ │ ├── ddot_microk_power8.c │ │ ├── ddot_power10.c │ │ ├── def_vsx.h │ │ ├── dgemm_kernel_16x4_power8.S │ │ ├── dgemm_kernel_power10.c │ │ ├── dgemm_kernel_power9.S │ │ ├── dgemm_logic_16x4_power8.S │ │ ├── dgemm_logic_power9.S │ │ ├── dgemm_macros_16x4_power8.S │ │ ├── dgemm_macros_power9.S │ │ ├── dgemm_ncopy_4_power8.S │ │ ├── dgemm_ncopy_8_power10.c │ │ ├── dgemm_ncopy_logic_4_power8.S │ │ ├── dgemm_ncopy_macros_4_power8.S │ │ ├── dgemm_small_kernel_nn_power10.c │ │ ├── dgemm_small_kernel_nt_power10.c │ │ ├── dgemm_small_kernel_tn_power10.c │ │ ├── dgemm_small_kernel_tt_power10.c │ │ ├── dgemm_tcopy_16_power8.S │ │ ├── dgemm_tcopy_logic_16_power8.S │ │ ├── dgemm_tcopy_macros_16_power10.S │ │ ├── dgemm_tcopy_macros_16_power8.S │ │ ├── dgemv_n.c │ │ ├── dgemv_n_microk_power10.c │ │ ├── dgemv_n_microk_power8.c │ │ ├── dgemv_n_power10.c │ │ ├── dgemv_t.c │ │ ├── dgemv_t_power10.c │ │ ├── dnrm2_hummer.S │ │ ├── dnrm2_ppc440.S │ │ ├── dot.S │ │ ├── dot_cell.S │ │ ├── dot_hummer.S │ │ ├── dot_ppc440.S │ │ ├── drot.c │ │ ├── drot_microk_power10.c │ │ ├── drot_microk_power8.c │ │ ├── dscal.c │ │ ├── dscal_microk_power10.c │ │ ├── dscal_microk_power8.c │ │ ├── dswap.c │ │ ├── dswap_microk_power8.c │ │ ├── dtrmm_kernel_16x4_power8.S │ │ ├── dtrmm_logic_16x4_power8.S │ │ ├── dtrmm_macros_16x4_power8.S │ │ ├── dtrsm_kernel_LT_16x4_power8.S │ │ ├── dtrsm_logic_LT_16x4_power8.S │ │ ├── dtrsm_macros_LT_16x4_power8.S │ │ ├── exfunc.S │ │ ├── gemm_beta.S │ │ ├── gemm_common.c │ │ ├── gemm_kernel.S │ │ ├── gemm_kernel_altivec.S │ │ ├── gemm_kernel_altivec_cell.S │ │ ├── gemm_kernel_altivec_g4.S │ │ ├── gemm_kernel_cell.S │ │ ├── gemm_kernel_g4.S │ │ ├── gemm_kernel_hummer.S │ │ ├── gemm_kernel_power3.S │ │ ├── gemm_kernel_power6.S │ │ ├── gemm_kernel_ppc440.S │ │ ├── gemm_ncopy_4.S │ │ ├── gemm_ncopy_hummer_4.S │ │ ├── gemm_ncopy_hummer_8.S │ │ ├── gemm_small_kernel_permit_power10.c │ │ ├── gemm_tcopy_4.S │ │ ├── gemm_tcopy_hummer_4.S │ │ ├── gemm_tcopy_hummer_8.S │ │ ├── gemv_hummer_n.S │ │ ├── gemv_n.S │ │ ├── gemv_n_ppc440.S │ │ ├── gemv_t.S │ │ ├── gemv_t_ppc440.S │ │ ├── ger.S │ │ ├── iamax.S │ │ ├── iamax_hummer.S │ │ ├── iamax_ppc440.S │ │ ├── iamin.S │ │ ├── iamin_hummer.S │ │ ├── iamin_ppc440.S │ │ ├── icamax.c │ │ ├── icamax_power8.S │ │ ├── icamax_power9.S │ │ ├── icamin.c │ │ ├── icamin_power8.S │ │ ├── icamin_power9.S │ │ ├── idamax.c │ │ ├── idamin.c │ │ ├── imax.S │ │ ├── imax_hummer.S │ │ ├── imax_ppc440.S │ │ ├── imin.S │ │ ├── imin_hummer.S │ │ ├── imin_ppc440.S │ │ ├── isamax.c │ │ ├── isamax_power8.S │ │ ├── isamax_power9.S │ │ ├── isamin.c │ │ ├── isamin_power8.S │ │ ├── isamin_power9.S │ │ ├── izamax.S │ │ ├── izamax.c │ │ ├── izamax_hummer.S │ │ ├── izamax_ppc440.S │ │ ├── izamin.S │ │ ├── izamin.c │ │ ├── izamin_hummer.S │ │ ├── izamin_ppc440.S │ │ ├── lock.c │ │ ├── lsame.S │ │ ├── max.S │ │ ├── max_hummer.S │ │ ├── max_ppc440.S │ │ ├── min.S │ │ ├── min_hummer.S │ │ ├── min_ppc440.S │ │ ├── nrm2.S │ │ ├── rot.S │ │ ├── rot_ppc440.S │ │ ├── sasum.c │ │ ├── sasum_microk_power10.c │ │ ├── sasum_microk_power8.c │ │ ├── saxpy.c │ │ ├── saxpy_microk_power10.c │ │ ├── saxpy_power10.c │ │ ├── sbgemm_kernel_power10.c │ │ ├── sbgemm_ncopy_16_power10.c │ │ ├── sbgemm_ncopy_8_power10.c │ │ ├── sbgemm_tcopy_16_power10.c │ │ ├── sbgemm_tcopy_8_power10.c │ │ ├── sbgemv_common.c │ │ ├── sbgemv_common_power10.c │ │ ├── sbgemv_n.c │ │ ├── sbgemv_n_power10.c │ │ ├── sbgemv_n_vsx.c │ │ ├── sbgemv_t.c │ │ ├── sbgemv_t_power10.c │ │ ├── sbgemv_t_vsx.c │ │ ├── scal.S │ │ ├── scal_hummer.S │ │ ├── scal_ppc440.S │ │ ├── scopy.c │ │ ├── scopy_microk_power8.c │ │ ├── scopy_power10.c │ │ ├── sdot.c │ │ ├── sdot_microk_power10.c │ │ ├── sdot_microk_power8.c │ │ ├── sdot_power10.c │ │ ├── sgemm_kernel_16x8_power8.S │ │ ├── sgemm_kernel_power10.c │ │ ├── sgemm_kernel_power9.S │ │ ├── sgemm_logic_16x8_power8.S │ │ ├── sgemm_logic_power9.S │ │ ├── sgemm_macros_16x8_power8.S │ │ ├── sgemm_macros_power9.S │ │ ├── sgemm_ncopy_16_power.c │ │ ├── sgemm_small_kernel_nn_power10.c │ │ ├── sgemm_small_kernel_nt_power10.c │ │ ├── sgemm_small_kernel_tn_power10.c │ │ ├── sgemm_small_kernel_tt_power10.c │ │ ├── sgemm_tcopy_16_power8.S │ │ ├── sgemm_tcopy_8_power8.S │ │ ├── sgemm_tcopy_logic_16_power8.S │ │ ├── sgemm_tcopy_logic_8_power8.S │ │ ├── sgemm_tcopy_macros_16_power10.S │ │ ├── sgemm_tcopy_macros_16_power8.S │ │ ├── sgemm_tcopy_macros_8_power8.S │ │ ├── sgemv_n.c │ │ ├── sgemv_n_8.c │ │ ├── sgemv_t.c │ │ ├── sgemv_t_8.c │ │ ├── snrm2.S │ │ ├── snrm2_hummer.S │ │ ├── snrm2_ppc440.S │ │ ├── srot.c │ │ ├── srot_microk_power10.c │ │ ├── srot_microk_power8.c │ │ ├── sscal.c │ │ ├── sscal_microk_power10.c │ │ ├── sscal_microk_power8.c │ │ ├── sswap.c │ │ ├── sswap_microk_power8.c │ │ ├── staticbuffer.S │ │ ├── strmm_kernel_16x8_power8.S │ │ ├── strmm_logic_16x8_power8.S │ │ ├── strmm_macros_16x8_power8.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── swap_hummer.S │ │ ├── swap_microk_power10.c │ │ ├── symv_L.S │ │ ├── symv_U.S │ │ ├── trsm_kernel_LN.S │ │ ├── trsm_kernel_LN_power10.c │ │ ├── trsm_kernel_LT.S │ │ ├── trsm_kernel_LT_power10.c │ │ ├── trsm_kernel_RN_power10.c │ │ ├── trsm_kernel_RT.S │ │ ├── trsm_kernel_RT_power10.c │ │ ├── trsm_kernel_cell_LN.S │ │ ├── trsm_kernel_cell_LT.S │ │ ├── trsm_kernel_cell_RT.S │ │ ├── trsm_kernel_hummer_LN.S │ │ ├── trsm_kernel_hummer_LT.S │ │ ├── trsm_kernel_hummer_RT.S │ │ ├── trsm_kernel_power6_LN.S │ │ ├── trsm_kernel_power6_LT.S │ │ ├── trsm_kernel_power6_RT.S │ │ ├── trsm_kernel_ppc440_LN.S │ │ ├── trsm_kernel_ppc440_LT.S │ │ ├── trsm_kernel_ppc440_RT.S │ │ ├── zamax.S │ │ ├── zamax_cell.S │ │ ├── zamax_hummer.S │ │ ├── zamax_ppc440.S │ │ ├── zamin.S │ │ ├── zamin_cell.S │ │ ├── zamin_hummer.S │ │ ├── zamin_ppc440.S │ │ ├── zasum.S │ │ ├── zasum.c │ │ ├── zasum_cell.S │ │ ├── zasum_hummer.S │ │ ├── zasum_microk_power8.c │ │ ├── zasum_ppc440.S │ │ ├── zaxpy.S │ │ ├── zaxpy.c │ │ ├── zaxpy_hummer.S │ │ ├── zaxpy_microk_power10.c │ │ ├── zaxpy_microk_power8.c │ │ ├── zaxpy_power10.c │ │ ├── zaxpy_ppc440.S │ │ ├── zcopy.S │ │ ├── zcopy.c │ │ ├── zcopy_hummer.S │ │ ├── zcopy_microk_power8.c │ │ ├── zcopy_power10.c │ │ ├── zdot.S │ │ ├── zdot.c │ │ ├── zdot_cell.S │ │ ├── zdot_hummer.S │ │ ├── zdot_microk_power8.c │ │ ├── zdot_ppc440.S │ │ ├── zgemm_beta.S │ │ ├── zgemm_kernel.S │ │ ├── zgemm_kernel_8x2_power8.S │ │ ├── zgemm_kernel_altivec.S │ │ ├── zgemm_kernel_altivec_cell.S │ │ ├── zgemm_kernel_altivec_g4.S │ │ ├── zgemm_kernel_cell.S │ │ ├── zgemm_kernel_g4.S │ │ ├── zgemm_kernel_hummer.S │ │ ├── zgemm_kernel_power10.S │ │ ├── zgemm_kernel_power10.c │ │ ├── zgemm_kernel_power3.S │ │ ├── zgemm_kernel_power6.S │ │ ├── zgemm_kernel_power9.S │ │ ├── zgemm_kernel_ppc440.S │ │ ├── zgemm_logic_8x2_power8.S │ │ ├── zgemm_logic_power10.S │ │ ├── zgemm_logic_power9.S │ │ ├── zgemm_macros_8x2_power8.S │ │ ├── zgemm_macros_power10.S │ │ ├── zgemm_macros_power9.S │ │ ├── zgemm_ncopy_hummer_2.S │ │ ├── zgemm_ncopy_hummer_4.S │ │ ├── zgemm_tcopy_8_power8.S │ │ ├── zgemm_tcopy_hummer_2.S │ │ ├── zgemm_tcopy_hummer_4.S │ │ ├── zgemm_tcopy_logic_8_power8.S │ │ ├── zgemm_tcopy_macros_8_power8.S │ │ ├── zgemv_n.S │ │ ├── zgemv_n_4.c │ │ ├── zgemv_n_power10.c │ │ ├── zgemv_n_ppc440.S │ │ ├── zgemv_t.S │ │ ├── zgemv_t_4.c │ │ ├── zgemv_t_ppc440.S │ │ ├── zger.S │ │ ├── znrm2.S │ │ ├── znrm2_hummer.S │ │ ├── znrm2_ppc440.S │ │ ├── zrot.S │ │ ├── zrot.c │ │ ├── zrot_ppc440.S │ │ ├── zscal.S │ │ ├── zscal.c │ │ ├── zscal_hummer.S │ │ ├── zscal_microk_power10.c │ │ ├── zscal_microk_power8.c │ │ ├── zscal_ppc440.S │ │ ├── zsum.S │ │ ├── zswap.S │ │ ├── zswap.c │ │ ├── zswap_hummer.S │ │ ├── zswap_microk_power8.c │ │ ├── zsymv_L.S │ │ ├── zsymv_U.S │ │ ├── ztrmm_kernel_8x2_power8.S │ │ ├── ztrmm_logic_8x2_power8.S │ │ ├── ztrmm_macros_8x2_power8.S │ │ ├── ztrsm_kernel_LN.S │ │ ├── ztrsm_kernel_LT.S │ │ ├── ztrsm_kernel_RT.S │ │ ├── ztrsm_kernel_cell_LN.S │ │ ├── ztrsm_kernel_cell_LT.S │ │ ├── ztrsm_kernel_cell_RT.S │ │ ├── ztrsm_kernel_hummer_LN.S │ │ ├── ztrsm_kernel_hummer_LT.S │ │ ├── ztrsm_kernel_hummer_RT.S │ │ ├── ztrsm_kernel_power6_LN.S │ │ ├── ztrsm_kernel_power6_LT.S │ │ ├── ztrsm_kernel_power6_RT.S │ │ ├── ztrsm_kernel_ppc440_LN.S │ │ ├── ztrsm_kernel_ppc440_LT.S │ │ └── ztrsm_kernel_ppc440_RT.S │ ├── riscv64/ │ │ ├── KERNEL │ │ ├── KERNEL.C910V │ │ ├── KERNEL.RISCV64_GENERIC │ │ ├── KERNEL.RISCV64_ZVL128B │ │ ├── KERNEL.RISCV64_ZVL256B │ │ ├── KERNEL.x280 │ │ ├── Makefile │ │ ├── amax.c │ │ ├── amax_rvv.c │ │ ├── amax_vector.c │ │ ├── amin.c │ │ ├── amin_rvv.c │ │ ├── amin_vector.c │ │ ├── asum.c │ │ ├── asum_rvv.c │ │ ├── asum_vector.c │ │ ├── axpby.c │ │ ├── axpby_rvv.c │ │ ├── axpby_vector.c │ │ ├── axpby_vector_v2.c │ │ ├── axpy.c │ │ ├── axpy_rvv.c │ │ ├── axpy_vector.c │ │ ├── cgemm_kernel_8x4_zvl128b.c │ │ ├── cgemm_kernel_8x8_zvl256b.c │ │ ├── copy.c │ │ ├── copy_rvv.c │ │ ├── copy_vector.c │ │ ├── ctrmm_kernel_8x4_zvl128b.c │ │ ├── ctrmm_kernel_8x8_zvl256b.c │ │ ├── dgemm_kernel_8x4_c910v.c │ │ ├── dgemm_kernel_8x4_zvl128b.c │ │ ├── dgemm_kernel_8x8_zvl256b.c │ │ ├── dot.c │ │ ├── dot_rvv.c │ │ ├── dot_vector.c │ │ ├── dsdot_vector.c │ │ ├── dtrmm_kernel_8x4_zvl128b.c │ │ ├── dtrmm_kernel_8x8_zvl256b.c │ │ ├── gemm_beta_rvv.c │ │ ├── gemm_ncopy_16_rvv.c │ │ ├── gemm_ncopy_16fp_rvv.c │ │ ├── gemm_ncopy_4_rvv.c │ │ ├── gemm_ncopy_8_rvv.c │ │ ├── gemm_ncopy_8fp_rvv.c │ │ ├── gemm_ncopy_rvv_v1.c │ │ ├── gemm_tcopy_16_rvv.c │ │ ├── gemm_tcopy_16fp_rvv.c │ │ ├── gemm_tcopy_4_rvv.c │ │ ├── gemm_tcopy_8_rvv.c │ │ ├── gemm_tcopy_8fp_rvv.c │ │ ├── gemm_tcopy_rvv_v1.c │ │ ├── gemmkernel_rvv_v1x8.c │ │ ├── gemv_n.c │ │ ├── gemv_n_rvv.c │ │ ├── gemv_n_vector.c │ │ ├── gemv_t.c │ │ ├── gemv_t_rvv.c │ │ ├── gemv_t_vector.c │ │ ├── generate_kernel.py │ │ ├── iamax.c │ │ ├── iamax_rvv.c │ │ ├── iamax_vector.c │ │ ├── iamin.c │ │ ├── iamin_rvv.c │ │ ├── iamin_vector.c │ │ ├── imax.c │ │ ├── imax_rvv.c │ │ ├── imax_vector.c │ │ ├── imin.c │ │ ├── imin_rvv.c │ │ ├── imin_vector.c │ │ ├── izamax.c │ │ ├── izamax_rvv.c │ │ ├── izamax_vector.c │ │ ├── izamin.c │ │ ├── izamin_rvv.c │ │ ├── izamin_vector.c │ │ ├── max.c │ │ ├── max_rvv.c │ │ ├── max_vector.c │ │ ├── min.c │ │ ├── min_rvv.c │ │ ├── min_vector.c │ │ ├── nrm2.c │ │ ├── nrm2_rvv.c │ │ ├── nrm2_vector.c │ │ ├── nrm2_vector_dot.c │ │ ├── omatcopy_cn.c │ │ ├── omatcopy_cn_rvv.c │ │ ├── omatcopy_cn_vector.c │ │ ├── omatcopy_ct.c │ │ ├── omatcopy_ct_rvv.c │ │ ├── omatcopy_rn.c │ │ ├── omatcopy_rt.c │ │ ├── rot.c │ │ ├── rot_rvv.c │ │ ├── rot_vector.c │ │ ├── rotm_rvv.c │ │ ├── sbgemm_kernel_16x8_zvl256b.c │ │ ├── sbgemm_kernel_8x8_zvl128b.c │ │ ├── sbgemv_n_vector.c │ │ ├── sbgemv_t_vector.c │ │ ├── scal.c │ │ ├── scal_rvv.c │ │ ├── scal_vector.c │ │ ├── sgemm_kernel_16x4_c910v.c │ │ ├── sgemm_kernel_16x8_zvl256b.c │ │ ├── sgemm_kernel_8x8_zvl128b.c │ │ ├── shgemm_kernel_16x8_zvl256b.c │ │ ├── shgemm_kernel_8x8_zvl128b.c │ │ ├── strmm_kernel_16x8_zvl256b.c │ │ ├── strmm_kernel_8x8_zvl128b.c │ │ ├── sum_rvv.c │ │ ├── sum_vector.c │ │ ├── swap.c │ │ ├── swap_rvv.c │ │ ├── swap_vector.c │ │ ├── symm_lcopy_rvv_v1.c │ │ ├── symm_ucopy_rvv_v1.c │ │ ├── symv_L.c │ │ ├── symv_L_rvv.c │ │ ├── symv_L_vector.c │ │ ├── symv_U.c │ │ ├── symv_U_rvv.c │ │ ├── symv_U_vector.c │ │ ├── trmm_lncopy_rvv_v1.c │ │ ├── trmm_ltcopy_rvv_v1.c │ │ ├── trmm_uncopy_rvv_v1.c │ │ ├── trmm_utcopy_rvv_v1.c │ │ ├── trmmkernel_rvv_v1x8.c │ │ ├── trsm_kernel_LN_rvv_v1.c │ │ ├── trsm_kernel_LT_rvv_v1.c │ │ ├── trsm_kernel_RN_rvv_v1.c │ │ ├── trsm_kernel_RT_rvv_v1.c │ │ ├── trsm_lncopy_rvv_v1.c │ │ ├── trsm_ltcopy_rvv_v1.c │ │ ├── trsm_uncopy_rvv_v1.c │ │ ├── trsm_utcopy_rvv_v1.c │ │ ├── zamax.c │ │ ├── zamax_rvv.c │ │ ├── zamax_vector.c │ │ ├── zamin.c │ │ ├── zamin_rvv.c │ │ ├── zamin_vector.c │ │ ├── zasum.c │ │ ├── zasum_rvv.c │ │ ├── zasum_vector.c │ │ ├── zaxpby.c │ │ ├── zaxpby_rvv.c │ │ ├── zaxpby_vector.c │ │ ├── zaxpy.c │ │ ├── zaxpy_rvv.c │ │ ├── zaxpy_vector.c │ │ ├── zcopy.c │ │ ├── zcopy_rvv.c │ │ ├── zcopy_vector.c │ │ ├── zdot.c │ │ ├── zdot_rvv.c │ │ ├── zdot_vector.c │ │ ├── zgemm_beta_rvv.c │ │ ├── zgemm_kernel_4x4_zvl128b.c │ │ ├── zgemm_kernel_8x4_zvl256b.c │ │ ├── zgemm_kernel_generic.c │ │ ├── zgemm_ncopy_4_rvv.c │ │ ├── zgemm_ncopy_rvv_v1.c │ │ ├── zgemm_tcopy_4_rvv.c │ │ ├── zgemm_tcopy_rvv_v1.c │ │ ├── zgemmkernel_rvv_v1x4.c │ │ ├── zgemv_n.c │ │ ├── zgemv_n_rvv.c │ │ ├── zgemv_n_vector.c │ │ ├── zgemv_t.c │ │ ├── zgemv_t_rvv.c │ │ ├── zgemv_t_vector.c │ │ ├── zhemm_ltcopy_rvv_v1.c │ │ ├── zhemm_utcopy_rvv_v1.c │ │ ├── zhemv_LM_rvv.c │ │ ├── zhemv_LM_vector.c │ │ ├── zhemv_UV_rvv.c │ │ ├── zhemv_UV_vector.c │ │ ├── znrm2.c │ │ ├── znrm2_rvv.c │ │ ├── znrm2_vector.c │ │ ├── zomatcopy_cn.c │ │ ├── zomatcopy_cn_rvv.c │ │ ├── zomatcopy_cn_vector.c │ │ ├── zomatcopy_cnc.c │ │ ├── zomatcopy_ct.c │ │ ├── zomatcopy_ctc.c │ │ ├── zomatcopy_rn.c │ │ ├── zomatcopy_rnc.c │ │ ├── zomatcopy_rt.c │ │ ├── zomatcopy_rtc.c │ │ ├── zrot.c │ │ ├── zrot_rvv.c │ │ ├── zrot_vector.c │ │ ├── zscal.c │ │ ├── zscal_rvv.c │ │ ├── zscal_vector.c │ │ ├── zsum_rvv.c │ │ ├── zsum_vector.c │ │ ├── zswap.c │ │ ├── zswap_rvv.c │ │ ├── zswap_vector.c │ │ ├── zsymm_lcopy_rvv_v1.c │ │ ├── zsymm_ucopy_rvv_v1.c │ │ ├── zsymv_L_rvv.c │ │ ├── zsymv_U_rvv.c │ │ ├── ztrmm_kernel_4x4_zvl128b.c │ │ ├── ztrmm_kernel_8x4_zvl256b.c │ │ ├── ztrmm_lncopy_rvv_v1.c │ │ ├── ztrmm_ltcopy_rvv_v1.c │ │ ├── ztrmm_uncopy_rvv_v1.c │ │ ├── ztrmm_utcopy_rvv_v1.c │ │ ├── ztrmmkernel_2x2_rvv.c │ │ ├── ztrmmkernel_rvv_v1x4.c │ │ ├── ztrsm_lncopy_rvv_v1.c │ │ ├── ztrsm_ltcopy_rvv_v1.c │ │ ├── ztrsm_uncopy_rvv_v1.c │ │ └── ztrsm_utcopy_rvv_v1.c │ ├── setparam-ref.c │ ├── simd/ │ │ ├── intrin.h │ │ ├── intrin_avx.h │ │ ├── intrin_avx512.h │ │ ├── intrin_neon.h │ │ ├── intrin_sse.h │ │ └── intrin_wasm.h │ ├── sparc/ │ │ ├── KERNEL │ │ ├── KERNEL.sparc │ │ ├── KERNEL.sparcv7 │ │ ├── Makefile │ │ ├── amax.S │ │ ├── asum.S │ │ ├── axpy.S │ │ ├── cabs.S │ │ ├── cnrm2.S │ │ ├── copy.S │ │ ├── dnrm2.S │ │ ├── dot.S │ │ ├── gemm_kernel.S │ │ ├── gemm_kernel_2x8.S │ │ ├── gemm_ncopy.S │ │ ├── gemm_ncopy_2.S │ │ ├── gemm_ncopy_8.S │ │ ├── gemm_tcopy.S │ │ ├── gemm_tcopy_2.S │ │ ├── gemv_n.S │ │ ├── gemv_t.S │ │ ├── ger.S │ │ ├── iamax.S │ │ ├── imax.S │ │ ├── izamax.S │ │ ├── lsame.S │ │ ├── max.S │ │ ├── rot.S │ │ ├── scal.S │ │ ├── snrm2.S │ │ ├── staticbuffer.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── trsm_kernel_LN.S │ │ ├── trsm_kernel_LN_2x8.S │ │ ├── trsm_kernel_LT.S │ │ ├── trsm_kernel_LT_2x8.S │ │ ├── trsm_kernel_RT.S │ │ ├── trsm_kernel_RT_2x8.S │ │ ├── zamax.S │ │ ├── zasum.S │ │ ├── zaxpy.S │ │ ├── zcopy.S │ │ ├── zdot.S │ │ ├── zgemm_kernel.S │ │ ├── zgemm_kernel_1x4.S │ │ ├── zgemm_ncopy.S │ │ ├── zgemm_tcopy.S │ │ ├── zgemv_n.S │ │ ├── zgemv_t.S │ │ ├── znrm2.S │ │ ├── zrot.S │ │ ├── zscal.S │ │ ├── zsum.S │ │ ├── zswap.S │ │ ├── ztrsm_kernel_LN.S │ │ ├── ztrsm_kernel_LT.S │ │ ├── ztrsm_kernel_LT_1x4.S │ │ ├── ztrsm_kernel_RT.S │ │ └── ztrsm_kernel_RT_1x4.S │ ├── wasm/ │ │ ├── KERNEL │ │ ├── KERNEL.WASM128_GENERIC │ │ └── gemmkernel_wasm128.c │ ├── x86/ │ │ ├── KERNEL │ │ ├── KERNEL.ATHLON │ │ ├── KERNEL.ATOM │ │ ├── KERNEL.BANIAS │ │ ├── KERNEL.BARCELONA │ │ ├── KERNEL.BOBCAT │ │ ├── KERNEL.BULLDOZER │ │ ├── KERNEL.COPPERMINE │ │ ├── KERNEL.CORE2 │ │ ├── KERNEL.DUNNINGTON │ │ ├── KERNEL.HASWELL │ │ ├── KERNEL.KATMAI │ │ ├── KERNEL.NANO │ │ ├── KERNEL.NEHALEM │ │ ├── KERNEL.NORTHWOOD │ │ ├── KERNEL.OPTERON │ │ ├── KERNEL.OPTERON_SSE3 │ │ ├── KERNEL.P5 │ │ ├── KERNEL.P6 │ │ ├── KERNEL.PENRYN │ │ ├── KERNEL.PILEDRIVER │ │ ├── KERNEL.PRESCOTT │ │ ├── KERNEL.SANDYBRIDGE │ │ ├── KERNEL.VIAC3 │ │ ├── KERNEL.YONAH │ │ ├── KERNEL.ZEN │ │ ├── KERNEL.generic │ │ ├── Makefile │ │ ├── amax.S │ │ ├── amax_sse.S │ │ ├── amax_sse2.S │ │ ├── asum.S │ │ ├── asum_sse.S │ │ ├── asum_sse2.S │ │ ├── axpy.S │ │ ├── axpy_sse.S │ │ ├── axpy_sse2.S │ │ ├── axpy_sse2_opteron.S │ │ ├── cabs.S │ │ ├── copy.S │ │ ├── copy_sse.S │ │ ├── copy_sse2.S │ │ ├── cpuid.S │ │ ├── cpuid_win.c │ │ ├── dot.S │ │ ├── dot_amd.S │ │ ├── dot_sse.S │ │ ├── dot_sse2.S │ │ ├── dot_sse2_opteron.S │ │ ├── dot_sse_opteron.S │ │ ├── gemm_beta.S │ │ ├── gemm_kernel_1x4.S │ │ ├── gemm_kernel_2x2.S │ │ ├── gemm_kernel_2x2_atom.S │ │ ├── gemm_kernel_2x4_3dnow.S │ │ ├── gemm_kernel_2x4_barcelona.S │ │ ├── gemm_kernel_2x4_core2.S │ │ ├── gemm_kernel_2x4_penryn.S │ │ ├── gemm_kernel_2x4_sse2.S │ │ ├── gemm_kernel_2x4_sse3.S │ │ ├── gemm_kernel_4x2_core2.S │ │ ├── gemm_kernel_4x2_sse2.S │ │ ├── gemm_kernel_4x4_barcelona.S │ │ ├── gemm_kernel_4x4_penryn.S │ │ ├── gemm_kernel_4x4_sse.S │ │ ├── gemm_kernel_4x4_sse3.S │ │ ├── gemm_kernel_8x1_sse2.S │ │ ├── gemm_kernel_8x2_core2.S │ │ ├── gemm_kernel_8x2_sse.S │ │ ├── gemm_ncopy_2.S │ │ ├── gemm_ncopy_2_sse.S │ │ ├── gemm_ncopy_4_sse.S │ │ ├── gemm_tcopy_2.S │ │ ├── gemm_tcopy_2_sse.S │ │ ├── gemm_tcopy_4_sse.S │ │ ├── gemv_n.S │ │ ├── gemv_n_atom.S │ │ ├── gemv_n_sse.S │ │ ├── gemv_n_sse2.S │ │ ├── gemv_t.S │ │ ├── gemv_t_atom.S │ │ ├── gemv_t_sse.S │ │ ├── gemv_t_sse2.S │ │ ├── iamax.S │ │ ├── iamax_sse.S │ │ ├── iamax_sse2.S │ │ ├── izamax.S │ │ ├── izamax_sse.S │ │ ├── izamax_sse2.S │ │ ├── lsame.S │ │ ├── nrm2.S │ │ ├── nrm2_sse.S │ │ ├── qaxpy.S │ │ ├── qconjg.S │ │ ├── qdot.S │ │ ├── qgemm_kernel_2x2.S │ │ ├── qgemv_n.S │ │ ├── qgemv_t.S │ │ ├── qtrsm_kernel_LN_2x2.S │ │ ├── qtrsm_kernel_LT_2x2.S │ │ ├── qtrsm_kernel_RT_2x2.S │ │ ├── rot.S │ │ ├── rot_sse.S │ │ ├── rot_sse2.S │ │ ├── scal.S │ │ ├── scal_sse.S │ │ ├── scal_sse2.S │ │ ├── staticbuffer.S │ │ ├── sum.S │ │ ├── swap.S │ │ ├── swap_sse.S │ │ ├── swap_sse2.S │ │ ├── trsm_kernel_LN_2x2.S │ │ ├── trsm_kernel_LN_2x2_atom.S │ │ ├── trsm_kernel_LN_2x4_penryn.S │ │ ├── trsm_kernel_LN_2x4_sse2.S │ │ ├── trsm_kernel_LN_2x4_sse3.S │ │ ├── trsm_kernel_LN_4x2_core2.S │ │ ├── trsm_kernel_LN_4x2_sse2.S │ │ ├── trsm_kernel_LN_4x4_penryn.S │ │ ├── trsm_kernel_LN_4x4_sse.S │ │ ├── trsm_kernel_LN_8x2_sse.S │ │ ├── trsm_kernel_LT_1x4.S │ │ ├── trsm_kernel_LT_2x2.S │ │ ├── trsm_kernel_LT_2x2_atom.S │ │ ├── trsm_kernel_LT_2x4_penryn.S │ │ ├── trsm_kernel_LT_2x4_sse2.S │ │ ├── trsm_kernel_LT_2x4_sse3.S │ │ ├── trsm_kernel_LT_4x2_core2.S │ │ ├── trsm_kernel_LT_4x2_sse2.S │ │ ├── trsm_kernel_LT_4x4_penryn.S │ │ ├── trsm_kernel_LT_4x4_sse.S │ │ ├── trsm_kernel_LT_8x2_sse.S │ │ ├── trsm_kernel_RT_1x4.S │ │ ├── trsm_kernel_RT_2x2.S │ │ ├── trsm_kernel_RT_2x2_atom.S │ │ ├── trsm_kernel_RT_2x4_penryn.S │ │ ├── trsm_kernel_RT_2x4_sse2.S │ │ ├── trsm_kernel_RT_2x4_sse3.S │ │ ├── trsm_kernel_RT_4x2_core2.S │ │ ├── trsm_kernel_RT_4x2_sse2.S │ │ ├── trsm_kernel_RT_4x4_penryn.S │ │ ├── trsm_kernel_RT_4x4_sse.S │ │ ├── trsm_kernel_RT_8x2_sse.S │ │ ├── xaxpy.S │ │ ├── xdot.S │ │ ├── xgemm3m_kernel_2x2.S │ │ ├── xgemm_kernel_1x1.S │ │ ├── xgemv_n.S │ │ ├── xgemv_t.S │ │ ├── xtrsm_kernel_LT_1x1.S │ │ ├── zamax.S │ │ ├── zamax_sse.S │ │ ├── zamax_sse2.S │ │ ├── zasum.S │ │ ├── zasum_sse.S │ │ ├── zasum_sse2.S │ │ ├── zaxpy.S │ │ ├── zaxpy_sse.S │ │ ├── zaxpy_sse2.S │ │ ├── zcopy.S │ │ ├── zcopy_sse.S │ │ ├── zcopy_sse2.S │ │ ├── zdot.S │ │ ├── zdot_amd.S │ │ ├── zdot_sse.S │ │ ├── zdot_sse2.S │ │ ├── zgemm3m_kernel_1x4_athlon.S │ │ ├── zgemm3m_kernel_2x2_atom.S │ │ ├── zgemm3m_kernel_2x2_coppermine.S │ │ ├── zgemm3m_kernel_2x4_barcelona.S │ │ ├── zgemm3m_kernel_2x4_opteron.S │ │ ├── zgemm3m_kernel_2x4_penryn.S │ │ ├── zgemm3m_kernel_2x4_prescott.S │ │ ├── zgemm3m_kernel_4x2_core2.S │ │ ├── zgemm3m_kernel_4x2_northwood.S │ │ ├── zgemm3m_kernel_4x4_barcelona.S │ │ ├── zgemm3m_kernel_4x4_opteron.S │ │ ├── zgemm3m_kernel_4x4_penryn.S │ │ ├── zgemm3m_kernel_4x4_prescott.S │ │ ├── zgemm3m_kernel_8x2_core2.S │ │ ├── zgemm3m_kernel_8x2_sse.S │ │ ├── zgemm_beta.S │ │ ├── zgemm_kernel_1x1.S │ │ ├── zgemm_kernel_1x1_atom.S │ │ ├── zgemm_kernel_1x2.S │ │ ├── zgemm_kernel_1x2_3dnow.S │ │ ├── zgemm_kernel_1x2_barcelona.S │ │ ├── zgemm_kernel_1x2_penryn.S │ │ ├── zgemm_kernel_1x2_sse2.S │ │ ├── zgemm_kernel_1x2_sse3.S │ │ ├── zgemm_kernel_2x1_core2.S │ │ ├── zgemm_kernel_2x1_sse2.S │ │ ├── zgemm_kernel_2x2_barcelona.S │ │ ├── zgemm_kernel_2x2_penryn.S │ │ ├── zgemm_kernel_2x2_sse.S │ │ ├── zgemm_kernel_2x2_sse3.S │ │ ├── zgemm_kernel_4x1_core2.S │ │ ├── zgemm_kernel_4x1_sse.S │ │ ├── zgemm_ncopy_2.S │ │ ├── zgemm_tcopy_2.S │ │ ├── zgemv_n.S │ │ ├── zgemv_n_atom.S │ │ ├── zgemv_n_sse.S │ │ ├── zgemv_n_sse2.S │ │ ├── zgemv_t.S │ │ ├── zgemv_t_atom.S │ │ ├── zgemv_t_sse.S │ │ ├── zgemv_t_sse2.S │ │ ├── znrm2.S │ │ ├── znrm2_sse.S │ │ ├── zrot.S │ │ ├── zrot_sse.S │ │ ├── zrot_sse2.S │ │ ├── zscal.S │ │ ├── zscal_sse.S │ │ ├── zscal_sse2.S │ │ ├── zsum.S │ │ ├── zswap.S │ │ ├── zswap_sse.S │ │ ├── zswap_sse2.S │ │ ├── ztrsm_kernel_LN_2x1_core2.S │ │ ├── ztrsm_kernel_LN_2x1_sse2.S │ │ ├── ztrsm_kernel_LN_2x2_penryn.S │ │ ├── ztrsm_kernel_LN_2x2_sse.S │ │ ├── ztrsm_kernel_LN_4x1_sse.S │ │ ├── ztrsm_kernel_LT_1x1.S │ │ ├── ztrsm_kernel_LT_1x1_atom.S │ │ ├── ztrsm_kernel_LT_1x2_penryn.S │ │ ├── ztrsm_kernel_LT_1x2_sse2.S │ │ ├── ztrsm_kernel_LT_1x2_sse3.S │ │ ├── ztrsm_kernel_LT_2x1_core2.S │ │ ├── ztrsm_kernel_LT_2x1_sse2.S │ │ ├── ztrsm_kernel_LT_2x2_penryn.S │ │ ├── ztrsm_kernel_LT_2x2_sse.S │ │ ├── ztrsm_kernel_LT_4x1_sse.S │ │ ├── ztrsm_kernel_RT_1x2_penryn.S │ │ ├── ztrsm_kernel_RT_1x2_sse2.S │ │ ├── ztrsm_kernel_RT_1x2_sse3.S │ │ ├── ztrsm_kernel_RT_2x2_penryn.S │ │ └── ztrsm_kernel_RT_2x2_sse.S │ ├── x86_64/ │ │ ├── KERNEL │ │ ├── KERNEL.ATOM │ │ ├── KERNEL.BARCELONA │ │ ├── KERNEL.BOBCAT │ │ ├── KERNEL.BULLDOZER │ │ ├── KERNEL.COOPERLAKE │ │ ├── KERNEL.CORE2 │ │ ├── KERNEL.DUNNINGTON │ │ ├── KERNEL.EXCAVATOR │ │ ├── KERNEL.HASWELL │ │ ├── KERNEL.NANO │ │ ├── KERNEL.NEHALEM │ │ ├── KERNEL.OPTERON │ │ ├── KERNEL.OPTERON_SSE3 │ │ ├── KERNEL.PENRYN │ │ ├── KERNEL.PILEDRIVER │ │ ├── KERNEL.PRESCOTT │ │ ├── KERNEL.SANDYBRIDGE │ │ ├── KERNEL.SAPPHIRERAPIDS │ │ ├── KERNEL.SKYLAKEX │ │ ├── KERNEL.STEAMROLLER │ │ ├── KERNEL.ZEN │ │ ├── KERNEL.generic │ │ ├── Makefile │ │ ├── amax.S │ │ ├── amax_atom.S │ │ ├── amax_sse.S │ │ ├── amax_sse2.S │ │ ├── asum.S │ │ ├── asum_atom.S │ │ ├── asum_sse.S │ │ ├── asum_sse2.S │ │ ├── axpy.S │ │ ├── axpy_atom.S │ │ ├── axpy_sse.S │ │ ├── axpy_sse2.S │ │ ├── bf16_common_macros.h │ │ ├── bf16to.c │ │ ├── builtin_stinit.S │ │ ├── cabs.S │ │ ├── casum.c │ │ ├── casum_microk_skylakex-2.c │ │ ├── caxpy.c │ │ ├── caxpy_microk_bulldozer-2.c │ │ ├── caxpy_microk_haswell-2.c │ │ ├── caxpy_microk_sandy-2.c │ │ ├── caxpy_microk_steamroller-2.c │ │ ├── cdot.c │ │ ├── cdot_microk_bulldozer-2.c │ │ ├── cdot_microk_haswell-2.c │ │ ├── cdot_microk_sandy-2.c │ │ ├── cdot_microk_steamroller-2.c │ │ ├── cgemm3m_kernel_8x4_haswell.c │ │ ├── cgemm_kernel_4x2_bulldozer.S │ │ ├── cgemm_kernel_4x2_piledriver.S │ │ ├── cgemm_kernel_4x8_sandy.S │ │ ├── cgemm_kernel_8x2_haswell.S │ │ ├── cgemm_kernel_8x2_haswell.c │ │ ├── cgemm_kernel_8x2_sandy.S │ │ ├── cgemm_kernel_8x2_skylakex.c │ │ ├── cgemv_n.S │ │ ├── cgemv_n_4.c │ │ ├── cgemv_n_microk_bulldozer-4.c │ │ ├── cgemv_n_microk_haswell-4.c │ │ ├── cgemv_t.S │ │ ├── cgemv_t_4.c │ │ ├── cgemv_t_microk_bulldozer-4.c │ │ ├── cgemv_t_microk_haswell-4.c │ │ ├── copy.S │ │ ├── copy_sse.S │ │ ├── copy_sse2.S │ │ ├── cscal.c │ │ ├── cscal_microk_bulldozer-2.c │ │ ├── cscal_microk_haswell-2.c │ │ ├── cscal_microk_skylakex-2.c │ │ ├── cscal_microk_steamroller-2.c │ │ ├── csum.c │ │ ├── csum_microk_skylakex-2.c │ │ ├── ctrsm_kernel_LN_bulldozer.c │ │ ├── ctrsm_kernel_LT_bulldozer.c │ │ ├── ctrsm_kernel_RN_bulldozer.c │ │ ├── ctrsm_kernel_RT_bulldozer.c │ │ ├── dasum.c │ │ ├── dasum_microk_haswell-2.c │ │ ├── dasum_microk_skylakex-2.c │ │ ├── daxpy.c │ │ ├── daxpy_bulldozer.S │ │ ├── daxpy_microk_bulldozer-2.c │ │ ├── daxpy_microk_haswell-2.c │ │ ├── daxpy_microk_nehalem-2.c │ │ ├── daxpy_microk_piledriver-2.c │ │ ├── daxpy_microk_sandy-2.c │ │ ├── daxpy_microk_skylakex-2.c │ │ ├── daxpy_microk_steamroller-2.c │ │ ├── dcopy_bulldozer.S │ │ ├── ddot.c │ │ ├── ddot_bulldozer.S │ │ ├── ddot_microk_bulldozer-2.c │ │ ├── ddot_microk_haswell-2.c │ │ ├── ddot_microk_nehalem-2.c │ │ ├── ddot_microk_piledriver-2.c │ │ ├── ddot_microk_sandy-2.c │ │ ├── ddot_microk_skylakex-2.c │ │ ├── ddot_microk_steamroller-2.c │ │ ├── dgemm_beta_skylakex.c │ │ ├── dgemm_kernel_16x2_haswell.S │ │ ├── dgemm_kernel_16x2_skylakex.S │ │ ├── dgemm_kernel_16x2_skylakex.c │ │ ├── dgemm_kernel_4x4_haswell.S │ │ ├── dgemm_kernel_4x8_haswell.S │ │ ├── dgemm_kernel_4x8_sandy.S │ │ ├── dgemm_kernel_4x8_skylakex.c │ │ ├── dgemm_kernel_4x8_skylakex_2.c │ │ ├── dgemm_kernel_6x4_piledriver.S │ │ ├── dgemm_kernel_8x2_bulldozer.S │ │ ├── dgemm_kernel_8x2_piledriver.S │ │ ├── dgemm_kernel_8x8_skylakex.c │ │ ├── dgemm_ncopy_2.S │ │ ├── dgemm_ncopy_4.S │ │ ├── dgemm_ncopy_8.S │ │ ├── dgemm_ncopy_8_bulldozer.S │ │ ├── dgemm_ncopy_8_skylakex.c │ │ ├── dgemm_small_kernel_nn_skylakex.c │ │ ├── dgemm_small_kernel_nt_skylakex.c │ │ ├── dgemm_small_kernel_permit_skylakex.c │ │ ├── dgemm_small_kernel_tn_skylakex.c │ │ ├── dgemm_small_kernel_tt_skylakex.c │ │ ├── dgemm_tcopy_16_skylakex.c │ │ ├── dgemm_tcopy_2.S │ │ ├── dgemm_tcopy_4.S │ │ ├── dgemm_tcopy_8.S │ │ ├── dgemm_tcopy_8_bulldozer.S │ │ ├── dgemm_tcopy_8_skylakex.c │ │ ├── dgemv_n.S │ │ ├── dgemv_n_4.c │ │ ├── dgemv_n_atom.S │ │ ├── dgemv_n_bulldozer.S │ │ ├── dgemv_n_microk_haswell-4.c │ │ ├── dgemv_n_microk_nehalem-4.c │ │ ├── dgemv_n_microk_piledriver-4.c │ │ ├── dgemv_n_microk_skylakex-4.c │ │ ├── dgemv_t.S │ │ ├── dgemv_t_4.c │ │ ├── dgemv_t_atom.S │ │ ├── dgemv_t_bulldozer.S │ │ ├── dgemv_t_microk_haswell-4.c │ │ ├── dger.c │ │ ├── dger_microk_sandy-2.c │ │ ├── dot.S │ │ ├── dot_atom.S │ │ ├── dot_sse.S │ │ ├── dot_sse2.S │ │ ├── drot.c │ │ ├── drot_microk_haswell-2.c │ │ ├── drot_microk_skylakex-2.c │ │ ├── dscal.c │ │ ├── dscal_microk_bulldozer-2.c │ │ ├── dscal_microk_haswell-2.c │ │ ├── dscal_microk_sandy-2.c │ │ ├── dscal_microk_skylakex-2.c │ │ ├── dsymv_L.c │ │ ├── dsymv_L_microk_bulldozer-2.c │ │ ├── dsymv_L_microk_haswell-2.c │ │ ├── dsymv_L_microk_nehalem-2.c │ │ ├── dsymv_L_microk_sandy-2.c │ │ ├── dsymv_L_microk_skylakex-2.c │ │ ├── dsymv_U.c │ │ ├── dsymv_U_microk_bulldozer-2.c │ │ ├── dsymv_U_microk_haswell-2.c │ │ ├── dsymv_U_microk_nehalem-2.c │ │ ├── dsymv_U_microk_sandy-2.c │ │ ├── dtobf16_microk_cooperlake.c │ │ ├── dtrmm_kernel_4x8_haswell.c │ │ ├── dtrsm_kernel_LN_bulldozer.c │ │ ├── dtrsm_kernel_LT_8x2_bulldozer.S │ │ ├── dtrsm_kernel_RN_8x2_bulldozer.S │ │ ├── dtrsm_kernel_RN_haswell.c │ │ ├── dtrsm_kernel_RT_bulldozer.c │ │ ├── gemm_beta.S │ │ ├── gemm_kernel_2x8_nehalem.S │ │ ├── gemm_kernel_4x2_atom.S │ │ ├── gemm_kernel_4x4_barcelona.S │ │ ├── gemm_kernel_4x4_core2.S │ │ ├── gemm_kernel_4x4_penryn.S │ │ ├── gemm_kernel_4x4_sse2.S │ │ ├── gemm_kernel_4x4_sse3.S │ │ ├── gemm_kernel_4x8_nano.S │ │ ├── gemm_kernel_4x8_nehalem.S │ │ ├── gemm_kernel_8x4_barcelona.S │ │ ├── gemm_kernel_8x4_core2.S │ │ ├── gemm_kernel_8x4_penryn.S │ │ ├── gemm_kernel_8x4_sse.S │ │ ├── gemm_kernel_8x4_sse3.S │ │ ├── gemm_ncopy_2.S │ │ ├── gemm_ncopy_2_bulldozer.S │ │ ├── gemm_ncopy_4.S │ │ ├── gemm_ncopy_4_opteron.S │ │ ├── gemm_tcopy_2.S │ │ ├── gemm_tcopy_2_bulldozer.S │ │ ├── gemm_tcopy_4.S │ │ ├── gemm_tcopy_4_opteron.S │ │ ├── iamax.S │ │ ├── iamax_sse.S │ │ ├── iamax_sse2.S │ │ ├── izamax.S │ │ ├── izamax_sse.S │ │ ├── izamax_sse2.S │ │ ├── lsame.S │ │ ├── mcount.S │ │ ├── nrm2.S │ │ ├── nrm2_sse.S │ │ ├── omatcopy_ct.c │ │ ├── omatcopy_rt.c │ │ ├── qconjg.S │ │ ├── qdot.S │ │ ├── qgemm_kernel_2x2.S │ │ ├── qgemv_n.S │ │ ├── qgemv_t.S │ │ ├── qtrsm_kernel_LN_2x2.S │ │ ├── qtrsm_kernel_LT_2x2.S │ │ ├── qtrsm_kernel_RT_2x2.S │ │ ├── rot.S │ │ ├── rot_sse.S │ │ ├── rot_sse2.S │ │ ├── sasum.c │ │ ├── sasum_microk_haswell-2.c │ │ ├── sasum_microk_skylakex-2.c │ │ ├── saxpy.c │ │ ├── saxpy_microk_haswell-2.c │ │ ├── saxpy_microk_nehalem-2.c │ │ ├── saxpy_microk_piledriver-2.c │ │ ├── saxpy_microk_sandy-2.c │ │ ├── saxpy_microk_skylakex-2.c │ │ ├── sbdot.c │ │ ├── sbdot_microk_cooperlake.c │ │ ├── sbgemm_block_microk_cooperlake.c │ │ ├── sbgemm_kernel_16x16_spr.c │ │ ├── sbgemm_kernel_16x16_spr_tmpl.c │ │ ├── sbgemm_kernel_16x4_cooperlake.c │ │ ├── sbgemm_microk_cooperlake_template.c │ │ ├── sbgemm_ncopy_16_cooperlake.c │ │ ├── sbgemm_ncopy_4_cooperlake.c │ │ ├── sbgemm_oncopy_16_spr.c │ │ ├── sbgemm_otcopy_16_spr.c │ │ ├── sbgemm_small_kernel_nn_cooperlake.c │ │ ├── sbgemm_small_kernel_nt_cooperlake.c │ │ ├── sbgemm_small_kernel_permit_cooperlake.c │ │ ├── sbgemm_small_kernel_permit_spr.c │ │ ├── sbgemm_small_kernel_template_cooperlake.c │ │ ├── sbgemm_small_kernel_tn_cooperlake.c │ │ ├── sbgemm_small_kernel_tt_cooperlake.c │ │ ├── sbgemm_tcopy_16_cooperlake.c │ │ ├── sbgemm_tcopy_4_cooperlake.c │ │ ├── sbgemv_n.c │ │ ├── sbgemv_n_microk_cooperlake.c │ │ ├── sbgemv_n_microk_cooperlake_template.c │ │ ├── sbgemv_t.c │ │ ├── sbgemv_t_microk_cooperlake.c │ │ ├── sbgemv_t_microk_cooperlake_template.c │ │ ├── scal.S │ │ ├── scal_atom.S │ │ ├── scal_sse.S │ │ ├── scal_sse2.S │ │ ├── sdot.c │ │ ├── sdot_microk_bulldozer-2.c │ │ ├── sdot_microk_haswell-2.c │ │ ├── sdot_microk_nehalem-2.c │ │ ├── sdot_microk_sandy-2.c │ │ ├── sdot_microk_skylakex-2.c │ │ ├── sdot_microk_steamroller-2.c │ │ ├── sgemm_beta_skylakex.c │ │ ├── sgemm_direct_performant.c │ │ ├── sgemm_direct_skylakex.c │ │ ├── sgemm_kernel_16x2_bulldozer.S │ │ ├── sgemm_kernel_16x2_piledriver.S │ │ ├── sgemm_kernel_16x4_haswell.S │ │ ├── sgemm_kernel_16x4_sandy.S │ │ ├── sgemm_kernel_16x4_skylakex.S │ │ ├── sgemm_kernel_16x4_skylakex.c │ │ ├── sgemm_kernel_16x4_skylakex_2.c │ │ ├── sgemm_kernel_16x4_skylakex_3.c │ │ ├── sgemm_kernel_8x4_bulldozer.S │ │ ├── sgemm_kernel_8x4_haswell.c │ │ ├── sgemm_kernel_8x4_haswell_2.c │ │ ├── sgemm_kernel_8x8_sandy.S │ │ ├── sgemm_ncopy_4_skylakex.c │ │ ├── sgemm_small_kernel_nn_skylakex.c │ │ ├── sgemm_small_kernel_nt_skylakex.c │ │ ├── sgemm_small_kernel_permit_skylakex.c │ │ ├── sgemm_small_kernel_tn_skylakex.c │ │ ├── sgemm_small_kernel_tt_skylakex.c │ │ ├── sgemm_tcopy_16_skylakex.c │ │ ├── sgemv_n.S │ │ ├── sgemv_n.c │ │ ├── sgemv_n_4.c │ │ ├── sgemv_n_microk_bulldozer-4.c │ │ ├── sgemv_n_microk_haswell-4.c │ │ ├── sgemv_n_microk_nehalem-4.c │ │ ├── sgemv_n_microk_sandy-4.c │ │ ├── sgemv_n_microk_skylakex-8.c │ │ ├── sgemv_t.S │ │ ├── sgemv_t.c │ │ ├── sgemv_t_4.c │ │ ├── sgemv_t_microk_bulldozer-4.c │ │ ├── sgemv_t_microk_haswell-4.c │ │ ├── sgemv_t_microk_nehalem-4.c │ │ ├── sgemv_t_microk_sandy-4.c │ │ ├── sgemv_t_microk_skylakex.c │ │ ├── sgemv_t_microk_skylakex_template.c │ │ ├── sger.c │ │ ├── sger_microk_sandy-2.c │ │ ├── srot.c │ │ ├── srot_microk_haswell-2.c │ │ ├── srot_microk_skylakex-2.c │ │ ├── sscal.c │ │ ├── sscal_microk_haswell-2.c │ │ ├── sscal_microk_skylakex-2.c │ │ ├── ssymv_L.c │ │ ├── ssymv_L_microk_bulldozer-2.c │ │ ├── ssymv_L_microk_haswell-2.c │ │ ├── ssymv_L_microk_nehalem-2.c │ │ ├── ssymv_L_microk_sandy-2.c │ │ ├── ssymv_U.c │ │ ├── ssymv_U_microk_bulldozer-2.c │ │ ├── ssymv_U_microk_haswell-2.c │ │ ├── ssymv_U_microk_nehalem-2.c │ │ ├── ssymv_U_microk_sandy-2.c │ │ ├── staticbuffer.S │ │ ├── stobf16_microk_cooperlake.c │ │ ├── strsm_kernel_8x4_haswell_LN.c │ │ ├── strsm_kernel_8x4_haswell_LT.c │ │ ├── strsm_kernel_8x4_haswell_L_common.h │ │ ├── strsm_kernel_8x4_haswell_RN.c │ │ ├── strsm_kernel_8x4_haswell_RT.c │ │ ├── strsm_kernel_8x4_haswell_R_common.h │ │ ├── strsm_kernel_LN_bulldozer.c │ │ ├── strsm_kernel_LT_bulldozer.c │ │ ├── strsm_kernel_RN_bulldozer.c │ │ ├── strsm_kernel_RT_bulldozer.c │ │ ├── sum.S │ │ ├── swap.S │ │ ├── swap_sse.S │ │ ├── swap_sse2.S │ │ ├── symv_L_sse.S │ │ ├── symv_L_sse2.S │ │ ├── symv_U_sse.S │ │ ├── symv_U_sse2.S │ │ ├── tobf16.c │ │ ├── trsm_kernel_LN_2x8_nehalem.S │ │ ├── trsm_kernel_LN_4x2_atom.S │ │ ├── trsm_kernel_LN_4x4_barcelona.S │ │ ├── trsm_kernel_LN_4x4_core2.S │ │ ├── trsm_kernel_LN_4x4_penryn.S │ │ ├── trsm_kernel_LN_4x4_sse2.S │ │ ├── trsm_kernel_LN_4x4_sse3.S │ │ ├── trsm_kernel_LN_4x8_nehalem.S │ │ ├── trsm_kernel_LN_8x4_sse.S │ │ ├── trsm_kernel_LT_2x8_nehalem.S │ │ ├── trsm_kernel_LT_4x2_atom.S │ │ ├── trsm_kernel_LT_4x4_barcelona.S │ │ ├── trsm_kernel_LT_4x4_core2.S │ │ ├── trsm_kernel_LT_4x4_penryn.S │ │ ├── trsm_kernel_LT_4x4_sse2.S │ │ ├── trsm_kernel_LT_4x4_sse3.S │ │ ├── trsm_kernel_LT_4x8_nehalem.S │ │ ├── trsm_kernel_LT_8x4_sse.S │ │ ├── trsm_kernel_RT_2x8_nehalem.S │ │ ├── trsm_kernel_RT_4x2_atom.S │ │ ├── trsm_kernel_RT_4x4_barcelona.S │ │ ├── trsm_kernel_RT_4x4_core2.S │ │ ├── trsm_kernel_RT_4x4_penryn.S │ │ ├── trsm_kernel_RT_4x4_sse2.S │ │ ├── trsm_kernel_RT_4x4_sse3.S │ │ ├── trsm_kernel_RT_4x8_nehalem.S │ │ ├── trsm_kernel_RT_8x4_sse.S │ │ ├── xdot.S │ │ ├── xgemm3m_kernel_2x2.S │ │ ├── xgemm_kernel_1x1.S │ │ ├── xgemv_n.S │ │ ├── xgemv_t.S │ │ ├── xtrsm_kernel_LT_1x1.S │ │ ├── zamax.S │ │ ├── zamax_atom.S │ │ ├── zamax_sse.S │ │ ├── zamax_sse2.S │ │ ├── zasum.S │ │ ├── zasum.c │ │ ├── zasum_atom.S │ │ ├── zasum_microk_skylakex-2.c │ │ ├── zasum_sse.S │ │ ├── zasum_sse2.S │ │ ├── zaxpy.S │ │ ├── zaxpy.c │ │ ├── zaxpy_atom.S │ │ ├── zaxpy_microk_bulldozer-2.c │ │ ├── zaxpy_microk_haswell-2.c │ │ ├── zaxpy_microk_sandy-2.c │ │ ├── zaxpy_microk_steamroller-2.c │ │ ├── zaxpy_sse.S │ │ ├── zaxpy_sse2.S │ │ ├── zcopy.S │ │ ├── zcopy_sse.S │ │ ├── zcopy_sse2.S │ │ ├── zdot.S │ │ ├── zdot.c │ │ ├── zdot_atom.S │ │ ├── zdot_microk_bulldozer-2.c │ │ ├── zdot_microk_haswell-2.c │ │ ├── zdot_microk_sandy-2.c │ │ ├── zdot_microk_steamroller-2.c │ │ ├── zdot_sse.S │ │ ├── zdot_sse2.S │ │ ├── zgemm3m_kernel_2x8_nehalem.S │ │ ├── zgemm3m_kernel_4x2_atom.S │ │ ├── zgemm3m_kernel_4x4_barcelona.S │ │ ├── zgemm3m_kernel_4x4_core2.S │ │ ├── zgemm3m_kernel_4x4_haswell.c │ │ ├── zgemm3m_kernel_4x4_penryn.S │ │ ├── zgemm3m_kernel_4x4_sse2.S │ │ ├── zgemm3m_kernel_4x4_sse3.S │ │ ├── zgemm3m_kernel_4x8_nehalem.S │ │ ├── zgemm3m_kernel_8x4_barcelona.S │ │ ├── zgemm3m_kernel_8x4_core2.S │ │ ├── zgemm3m_kernel_8x4_penryn.S │ │ ├── zgemm3m_kernel_8x4_sse.S │ │ ├── zgemm3m_kernel_8x4_sse3.S │ │ ├── zgemm_beta.S │ │ ├── zgemm_kernel_1x4_nehalem.S │ │ ├── zgemm_kernel_2x1_atom.S │ │ ├── zgemm_kernel_2x2_barcelona.S │ │ ├── zgemm_kernel_2x2_bulldozer.S │ │ ├── zgemm_kernel_2x2_core2.S │ │ ├── zgemm_kernel_2x2_penryn.S │ │ ├── zgemm_kernel_2x2_piledriver.S │ │ ├── zgemm_kernel_2x2_sse2.S │ │ ├── zgemm_kernel_2x2_sse3.S │ │ ├── zgemm_kernel_2x4_nehalem.S │ │ ├── zgemm_kernel_4x2_barcelona.S │ │ ├── zgemm_kernel_4x2_core2.S │ │ ├── zgemm_kernel_4x2_haswell.S │ │ ├── zgemm_kernel_4x2_haswell.c │ │ ├── zgemm_kernel_4x2_penryn.S │ │ ├── zgemm_kernel_4x2_skylakex.c │ │ ├── zgemm_kernel_4x2_sse.S │ │ ├── zgemm_kernel_4x2_sse3.S │ │ ├── zgemm_kernel_4x4_sandy.S │ │ ├── zgemm_ncopy_1.S │ │ ├── zgemm_ncopy_2.S │ │ ├── zgemm_tcopy_1.S │ │ ├── zgemm_tcopy_2.S │ │ ├── zgemv_n.S │ │ ├── zgemv_n_4.c │ │ ├── zgemv_n_atom.S │ │ ├── zgemv_n_dup.S │ │ ├── zgemv_n_microk_bulldozer-4.c │ │ ├── zgemv_n_microk_haswell-4.c │ │ ├── zgemv_n_microk_sandy-4.c │ │ ├── zgemv_t.S │ │ ├── zgemv_t_4.c │ │ ├── zgemv_t_atom.S │ │ ├── zgemv_t_dup.S │ │ ├── zgemv_t_microk_bulldozer-4.c │ │ ├── zgemv_t_microk_haswell-4.c │ │ ├── znrm2.S │ │ ├── znrm2_sse.S │ │ ├── zrot.S │ │ ├── zrot_sse.S │ │ ├── zrot_sse2.S │ │ ├── zscal.S │ │ ├── zscal.c │ │ ├── zscal_atom.S │ │ ├── zscal_microk_bulldozer-2.c │ │ ├── zscal_microk_haswell-2.c │ │ ├── zscal_microk_skylakex-2.c │ │ ├── zscal_microk_steamroller-2.c │ │ ├── zscal_sse.S │ │ ├── zscal_sse2.S │ │ ├── zsum.S │ │ ├── zsum.c │ │ ├── zsum_microk_skylakex-2.c │ │ ├── zsum_sse.S │ │ ├── zsum_sse2.S │ │ ├── zswap.S │ │ ├── zswap_sse.S │ │ ├── zswap_sse2.S │ │ ├── zsymv_L_sse.S │ │ ├── zsymv_L_sse2.S │ │ ├── zsymv_U_sse.S │ │ ├── zsymv_U_sse2.S │ │ ├── ztrsm_kernel_LN_2x1_atom.S │ │ ├── ztrsm_kernel_LN_2x2_core2.S │ │ ├── ztrsm_kernel_LN_2x2_penryn.S │ │ ├── ztrsm_kernel_LN_2x2_sse2.S │ │ ├── ztrsm_kernel_LN_2x2_sse3.S │ │ ├── ztrsm_kernel_LN_2x4_nehalem.S │ │ ├── ztrsm_kernel_LN_4x2_sse.S │ │ ├── ztrsm_kernel_LN_bulldozer.c │ │ ├── ztrsm_kernel_LT_1x4_nehalem.S │ │ ├── ztrsm_kernel_LT_2x1_atom.S │ │ ├── ztrsm_kernel_LT_2x2_core2.S │ │ ├── ztrsm_kernel_LT_2x2_penryn.S │ │ ├── ztrsm_kernel_LT_2x2_sse2.S │ │ ├── ztrsm_kernel_LT_2x2_sse3.S │ │ ├── ztrsm_kernel_LT_2x4_nehalem.S │ │ ├── ztrsm_kernel_LT_4x2_sse.S │ │ ├── ztrsm_kernel_LT_bulldozer.c │ │ ├── ztrsm_kernel_RN_bulldozer.c │ │ ├── ztrsm_kernel_RT_1x4_nehalem.S │ │ ├── ztrsm_kernel_RT_2x2_core2.S │ │ ├── ztrsm_kernel_RT_2x2_penryn.S │ │ ├── ztrsm_kernel_RT_2x2_sse2.S │ │ ├── ztrsm_kernel_RT_2x2_sse3.S │ │ ├── ztrsm_kernel_RT_2x4_nehalem.S │ │ ├── ztrsm_kernel_RT_4x2_sse.S │ │ └── ztrsm_kernel_RT_bulldozer.c │ └── zarch/ │ ├── KERNEL │ ├── KERNEL.Z13 │ ├── KERNEL.Z14 │ ├── KERNEL.ZARCH_GENERIC │ ├── Makefile │ ├── camax.c │ ├── camin.c │ ├── casum.c │ ├── caxpy.c │ ├── ccopy.c │ ├── cdot.c │ ├── cgemv_n_4.c │ ├── cgemv_t_4.c │ ├── ckernelMacrosV.S │ ├── crot.c │ ├── cscal.c │ ├── csum.c │ ├── cswap.c │ ├── ctrmm4x4V.S │ ├── damax.c │ ├── damax_z13.c │ ├── damin.c │ ├── damin_z13.c │ ├── dasum.c │ ├── daxpy.c │ ├── dcopy.c │ ├── ddot.c │ ├── dgemv_n_4.c │ ├── dgemv_t_4.c │ ├── dmax.c │ ├── dmax_z13.c │ ├── dmin.c │ ├── dmin_z13.c │ ├── drot.c │ ├── dscal.c │ ├── dsdot.c │ ├── dsum.c │ ├── dswap.c │ ├── gemm8x4V.S │ ├── gemm_vec.c │ ├── icamax.c │ ├── icamin.c │ ├── idamax.c │ ├── idamin.c │ ├── idmax.c │ ├── idmin.c │ ├── isamax.c │ ├── isamin.c │ ├── ismax.c │ ├── ismin.c │ ├── izamax.c │ ├── izamin.c │ ├── kernelMacros.S │ ├── samax.c │ ├── samin.c │ ├── sasum.c │ ├── saxpy.c │ ├── scopy.c │ ├── sdot.c │ ├── sgemv_n_4.c │ ├── sgemv_t_4.c │ ├── skernelMacros.S │ ├── smax.c │ ├── smin.c │ ├── srot.c │ ├── sscal.c │ ├── ssum.c │ ├── sswap.c │ ├── strmm8x4V.S │ ├── trmm8x4V.S │ ├── vector-common.h │ ├── zamax.c │ ├── zamax_z13.c │ ├── zamin.c │ ├── zamin_z13.c │ ├── zasum.c │ ├── zaxpy.c │ ├── zcopy.c │ ├── zdot.c │ ├── zgemv_n_4.c │ ├── zgemv_t_4.c │ ├── zkernelMacrosV.S │ ├── zrot.c │ ├── zscal.c │ ├── zsum.c │ ├── zswap.c │ └── ztrmm4x4V.S ├── l1param.h ├── l2param.h ├── lapack/ │ ├── CMakeLists.txt │ ├── Makefile │ ├── getf2/ │ │ ├── Makefile │ │ ├── getf2_k.c │ │ └── zgetf2_k.c │ ├── getrf/ │ │ ├── Makefile │ │ ├── getrf_parallel.c │ │ ├── getrf_parallel_omp.c │ │ └── getrf_single.c │ ├── getrs/ │ │ ├── Makefile │ │ ├── getrs_parallel.c │ │ ├── getrs_single.c │ │ ├── zgetrs_parallel.c │ │ └── zgetrs_single.c │ ├── laed3/ │ │ ├── Makefile │ │ ├── laed3_parallel.c │ │ └── laed3_single.c │ ├── laswp/ │ │ ├── Makefile │ │ ├── alpha/ │ │ │ └── Makefile │ │ ├── arm/ │ │ │ └── Makefile │ │ ├── arm64/ │ │ │ └── Makefile │ │ ├── csky/ │ │ │ └── Makefile │ │ ├── generic/ │ │ │ ├── Makefile │ │ │ ├── laswp_k.c │ │ │ ├── laswp_k_1.c │ │ │ ├── laswp_k_2.c │ │ │ ├── laswp_k_4.c │ │ │ ├── laswp_k_8.c │ │ │ ├── zlaswp_k.c │ │ │ ├── zlaswp_k_1.c │ │ │ ├── zlaswp_k_2.c │ │ │ └── zlaswp_k_4.c │ │ ├── ia64/ │ │ │ └── Makefile │ │ ├── loongarch64/ │ │ │ └── Makefile │ │ ├── mips/ │ │ │ └── Makefile │ │ ├── mips64/ │ │ │ └── Makefile │ │ ├── power/ │ │ │ └── Makefile │ │ ├── riscv64/ │ │ │ └── Makefile │ │ ├── sparc/ │ │ │ └── Makefile │ │ ├── wasm/ │ │ │ └── Makefile │ │ ├── x86/ │ │ │ └── Makefile │ │ ├── x86_64/ │ │ │ └── Makefile │ │ └── zarch/ │ │ └── Makefile │ ├── lauu2/ │ │ ├── Makefile │ │ ├── lauu2_L.c │ │ ├── lauu2_U.c │ │ ├── zlauu2_L.c │ │ └── zlauu2_U.c │ ├── lauum/ │ │ ├── Makefile │ │ ├── lauum_L_parallel.c │ │ ├── lauum_L_single.c │ │ ├── lauum_U_parallel.c │ │ └── lauum_U_single.c │ ├── potf2/ │ │ ├── Makefile │ │ ├── potf2_L.c │ │ ├── potf2_U.c │ │ ├── zpotf2_L.c │ │ └── zpotf2_U.c │ ├── potrf/ │ │ ├── Makefile │ │ ├── potrf_L_parallel.c │ │ ├── potrf_L_single.c │ │ ├── potrf_U_parallel.c │ │ ├── potrf_U_single.c │ │ └── potrf_parallel.c │ ├── trti2/ │ │ ├── Makefile │ │ ├── trti2_L.c │ │ ├── trti2_U.c │ │ ├── ztrti2_L.c │ │ └── ztrti2_U.c │ ├── trtri/ │ │ ├── Makefile │ │ ├── trtri_L_parallel.c │ │ ├── trtri_L_single.c │ │ ├── trtri_U_parallel.c │ │ └── trtri_U_single.c │ └── trtrs/ │ ├── Makefile │ ├── trtrs_parallel.c │ ├── trtrs_single.c │ ├── ztrtrs_parallel.c │ └── ztrtrs_single.c ├── lapack-netlib/ │ ├── .appveyor.yml │ ├── .gitignore │ ├── .travis.yml │ ├── BLAS/ │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── SRC/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── caxpy.f │ │ │ ├── ccopy.f │ │ │ ├── cdotc.f │ │ │ ├── cdotu.f │ │ │ ├── cgbmv.f │ │ │ ├── cgemm.f │ │ │ ├── cgemv.f │ │ │ ├── cgerc.f │ │ │ ├── cgeru.f │ │ │ ├── chbmv.f │ │ │ ├── chemm.f │ │ │ ├── chemv.f │ │ │ ├── cher.f │ │ │ ├── cher2.f │ │ │ ├── cher2k.f │ │ │ ├── cherk.f │ │ │ ├── chpmv.f │ │ │ ├── chpr.f │ │ │ ├── chpr2.f │ │ │ ├── crotg.f │ │ │ ├── cscal.f │ │ │ ├── csrot.f │ │ │ ├── csscal.f │ │ │ ├── cswap.f │ │ │ ├── csymm.f │ │ │ ├── csyr2k.f │ │ │ ├── csyrk.f │ │ │ ├── ctbmv.f │ │ │ ├── ctbsv.f │ │ │ ├── ctpmv.f │ │ │ ├── ctpsv.f │ │ │ ├── ctrmm.f │ │ │ ├── ctrmv.f │ │ │ ├── ctrsm.f │ │ │ ├── ctrsv.f │ │ │ ├── dasum.f │ │ │ ├── daxpy.f │ │ │ ├── dcabs1.f │ │ │ ├── dcopy.f │ │ │ ├── ddot.f │ │ │ ├── dgbmv.f │ │ │ ├── dgemm.f │ │ │ ├── dgemv.f │ │ │ ├── dger.f │ │ │ ├── dnrm2.f │ │ │ ├── drot.f │ │ │ ├── drotg.f │ │ │ ├── drotm.f │ │ │ ├── drotmg.f │ │ │ ├── dsbmv.f │ │ │ ├── dscal.f │ │ │ ├── dsdot.f │ │ │ ├── dspmv.f │ │ │ ├── dspr.f │ │ │ ├── dspr2.f │ │ │ ├── dswap.f │ │ │ ├── dsymm.f │ │ │ ├── dsymv.f │ │ │ ├── dsyr.f │ │ │ ├── dsyr2.f │ │ │ ├── dsyr2k.f │ │ │ ├── dsyrk.f │ │ │ ├── dtbmv.f │ │ │ ├── dtbsv.f │ │ │ ├── dtpmv.f │ │ │ ├── dtpsv.f │ │ │ ├── dtrmm.f │ │ │ ├── dtrmv.f │ │ │ ├── dtrsm.f │ │ │ ├── dtrsv.f │ │ │ ├── dzasum.f │ │ │ ├── dznrm2.f │ │ │ ├── icamax.f │ │ │ ├── idamax.f │ │ │ ├── isamax.f │ │ │ ├── izamax.f │ │ │ ├── lsame.f │ │ │ ├── meson.build │ │ │ ├── sasum.f │ │ │ ├── saxpy.f │ │ │ ├── scabs1.f │ │ │ ├── scasum.f │ │ │ ├── scnrm2.f │ │ │ ├── scopy.f │ │ │ ├── sdot.f │ │ │ ├── sdsdot.f │ │ │ ├── sgbmv.f │ │ │ ├── sgemm.f │ │ │ ├── sgemv.f │ │ │ ├── sger.f │ │ │ ├── snrm2.f │ │ │ ├── srot.f │ │ │ ├── srotg.f │ │ │ ├── srotm.f │ │ │ ├── srotmg.f │ │ │ ├── ssbmv.f │ │ │ ├── sscal.f │ │ │ ├── sspmv.f │ │ │ ├── sspr.f │ │ │ ├── sspr2.f │ │ │ ├── sswap.f │ │ │ ├── ssymm.f │ │ │ ├── ssymv.f │ │ │ ├── ssyr.f │ │ │ ├── ssyr2.f │ │ │ ├── ssyr2k.f │ │ │ ├── ssyrk.f │ │ │ ├── stbmv.f │ │ │ ├── stbsv.f │ │ │ ├── stpmv.f │ │ │ ├── stpsv.f │ │ │ ├── strmm.f │ │ │ ├── strmv.f │ │ │ ├── strsm.f │ │ │ ├── strsv.f │ │ │ ├── xerbla.f │ │ │ ├── xerbla_array.f │ │ │ ├── zaxpy.f │ │ │ ├── zcopy.f │ │ │ ├── zdotc.f │ │ │ ├── zdotu.f │ │ │ ├── zdrot.f │ │ │ ├── zdscal.f │ │ │ ├── zgbmv.f │ │ │ ├── zgemm.f │ │ │ ├── zgemv.f │ │ │ ├── zgerc.f │ │ │ ├── zgeru.f │ │ │ ├── zhbmv.f │ │ │ ├── zhemm.f │ │ │ ├── zhemv.f │ │ │ ├── zher.f │ │ │ ├── zher2.f │ │ │ ├── zher2k.f │ │ │ ├── zherk.f │ │ │ ├── zhpmv.f │ │ │ ├── zhpr.f │ │ │ ├── zhpr2.f │ │ │ ├── zrotg.f │ │ │ ├── zscal.f │ │ │ ├── zswap.f │ │ │ ├── zsymm.f │ │ │ ├── zsyr2k.f │ │ │ ├── zsyrk.f │ │ │ ├── ztbmv.f │ │ │ ├── ztbsv.f │ │ │ ├── ztpmv.f │ │ │ ├── ztpsv.f │ │ │ ├── ztrmm.f │ │ │ ├── ztrmv.f │ │ │ ├── ztrsm.f │ │ │ └── ztrsv.f │ │ ├── TESTING/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── cblat1.f │ │ │ ├── cblat2.f │ │ │ ├── cblat2.in │ │ │ ├── cblat3.f │ │ │ ├── cblat3.in │ │ │ ├── dblat1.f │ │ │ ├── dblat2.f │ │ │ ├── dblat2.in │ │ │ ├── dblat3.f │ │ │ ├── dblat3.in │ │ │ ├── sblat1.f │ │ │ ├── sblat2.f │ │ │ ├── sblat2.in │ │ │ ├── sblat3.f │ │ │ ├── sblat3.in │ │ │ ├── zblat1.f │ │ │ ├── zblat2.f │ │ │ ├── zblat2.in │ │ │ ├── zblat3.f │ │ │ └── zblat3.in │ │ └── blas.pc.in │ ├── CBLAS/ │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── README │ │ ├── cblas.pc.in │ │ ├── cmake/ │ │ │ ├── cblas-config-build.cmake.in │ │ │ ├── cblas-config-install.cmake.in │ │ │ └── cblas-config-version.cmake.in │ │ ├── examples/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── cblas_example1.c │ │ │ └── cblas_example2.c │ │ ├── include/ │ │ │ ├── CMakeLists.txt │ │ │ ├── cblas.h │ │ │ ├── cblas_f77.h │ │ │ ├── cblas_mangling_with_flags.h.in │ │ │ └── cblas_test.h │ │ ├── src/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── cblas_caxpy.c │ │ │ ├── cblas_ccopy.c │ │ │ ├── cblas_cdotc_sub.c │ │ │ ├── cblas_cdotu_sub.c │ │ │ ├── cblas_cgbmv.c │ │ │ ├── cblas_cgemm.c │ │ │ ├── cblas_cgemv.c │ │ │ ├── cblas_cgerc.c │ │ │ ├── cblas_cgeru.c │ │ │ ├── cblas_chbmv.c │ │ │ ├── cblas_chemm.c │ │ │ ├── cblas_chemv.c │ │ │ ├── cblas_cher.c │ │ │ ├── cblas_cher2.c │ │ │ ├── cblas_cher2k.c │ │ │ ├── cblas_cherk.c │ │ │ ├── cblas_chpmv.c │ │ │ ├── cblas_chpr.c │ │ │ ├── cblas_chpr2.c │ │ │ ├── cblas_cscal.c │ │ │ ├── cblas_csscal.c │ │ │ ├── cblas_cswap.c │ │ │ ├── cblas_csymm.c │ │ │ ├── cblas_csyr2k.c │ │ │ ├── cblas_csyrk.c │ │ │ ├── cblas_ctbmv.c │ │ │ ├── cblas_ctbsv.c │ │ │ ├── cblas_ctpmv.c │ │ │ ├── cblas_ctpsv.c │ │ │ ├── cblas_ctrmm.c │ │ │ ├── cblas_ctrmv.c │ │ │ ├── cblas_ctrsm.c │ │ │ ├── cblas_ctrsv.c │ │ │ ├── cblas_dasum.c │ │ │ ├── cblas_daxpy.c │ │ │ ├── cblas_dcopy.c │ │ │ ├── cblas_ddot.c │ │ │ ├── cblas_dgbmv.c │ │ │ ├── cblas_dgemm.c │ │ │ ├── cblas_dgemv.c │ │ │ ├── cblas_dger.c │ │ │ ├── cblas_dnrm2.c │ │ │ ├── cblas_drot.c │ │ │ ├── cblas_drotg.c │ │ │ ├── cblas_drotm.c │ │ │ ├── cblas_drotmg.c │ │ │ ├── cblas_dsbmv.c │ │ │ ├── cblas_dscal.c │ │ │ ├── cblas_dsdot.c │ │ │ ├── cblas_dspmv.c │ │ │ ├── cblas_dspr.c │ │ │ ├── cblas_dspr2.c │ │ │ ├── cblas_dswap.c │ │ │ ├── cblas_dsymm.c │ │ │ ├── cblas_dsymv.c │ │ │ ├── cblas_dsyr.c │ │ │ ├── cblas_dsyr2.c │ │ │ ├── cblas_dsyr2k.c │ │ │ ├── cblas_dsyrk.c │ │ │ ├── cblas_dtbmv.c │ │ │ ├── cblas_dtbsv.c │ │ │ ├── cblas_dtpmv.c │ │ │ ├── cblas_dtpsv.c │ │ │ ├── cblas_dtrmm.c │ │ │ ├── cblas_dtrmv.c │ │ │ ├── cblas_dtrsm.c │ │ │ ├── cblas_dtrsv.c │ │ │ ├── cblas_dzasum.c │ │ │ ├── cblas_dznrm2.c │ │ │ ├── cblas_globals.c │ │ │ ├── cblas_icamax.c │ │ │ ├── cblas_idamax.c │ │ │ ├── cblas_isamax.c │ │ │ ├── cblas_izamax.c │ │ │ ├── cblas_sasum.c │ │ │ ├── cblas_saxpy.c │ │ │ ├── cblas_scasum.c │ │ │ ├── cblas_scnrm2.c │ │ │ ├── cblas_scopy.c │ │ │ ├── cblas_sdot.c │ │ │ ├── cblas_sdsdot.c │ │ │ ├── cblas_sgbmv.c │ │ │ ├── cblas_sgemm.c │ │ │ ├── cblas_sgemv.c │ │ │ ├── cblas_sger.c │ │ │ ├── cblas_snrm2.c │ │ │ ├── cblas_srot.c │ │ │ ├── cblas_srotg.c │ │ │ ├── cblas_srotm.c │ │ │ ├── cblas_srotmg.c │ │ │ ├── cblas_ssbmv.c │ │ │ ├── cblas_sscal.c │ │ │ ├── cblas_sspmv.c │ │ │ ├── cblas_sspr.c │ │ │ ├── cblas_sspr2.c │ │ │ ├── cblas_sswap.c │ │ │ ├── cblas_ssymm.c │ │ │ ├── cblas_ssymv.c │ │ │ ├── cblas_ssyr.c │ │ │ ├── cblas_ssyr2.c │ │ │ ├── cblas_ssyr2k.c │ │ │ ├── cblas_ssyrk.c │ │ │ ├── cblas_stbmv.c │ │ │ ├── cblas_stbsv.c │ │ │ ├── cblas_stpmv.c │ │ │ ├── cblas_stpsv.c │ │ │ ├── cblas_strmm.c │ │ │ ├── cblas_strmv.c │ │ │ ├── cblas_strsm.c │ │ │ ├── cblas_strsv.c │ │ │ ├── cblas_xerbla.c │ │ │ ├── cblas_zaxpy.c │ │ │ ├── cblas_zcopy.c │ │ │ ├── cblas_zdotc_sub.c │ │ │ ├── cblas_zdotu_sub.c │ │ │ ├── cblas_zdscal.c │ │ │ ├── cblas_zgbmv.c │ │ │ ├── cblas_zgemm.c │ │ │ ├── cblas_zgemv.c │ │ │ ├── cblas_zgerc.c │ │ │ ├── cblas_zgeru.c │ │ │ ├── cblas_zhbmv.c │ │ │ ├── cblas_zhemm.c │ │ │ ├── cblas_zhemv.c │ │ │ ├── cblas_zher.c │ │ │ ├── cblas_zher2.c │ │ │ ├── cblas_zher2k.c │ │ │ ├── cblas_zherk.c │ │ │ ├── cblas_zhpmv.c │ │ │ ├── cblas_zhpr.c │ │ │ ├── cblas_zhpr2.c │ │ │ ├── cblas_zscal.c │ │ │ ├── cblas_zswap.c │ │ │ ├── cblas_zsymm.c │ │ │ ├── cblas_zsyr2k.c │ │ │ ├── cblas_zsyrk.c │ │ │ ├── cblas_ztbmv.c │ │ │ ├── cblas_ztbsv.c │ │ │ ├── cblas_ztpmv.c │ │ │ ├── cblas_ztpsv.c │ │ │ ├── cblas_ztrmm.c │ │ │ ├── cblas_ztrmv.c │ │ │ ├── cblas_ztrsm.c │ │ │ ├── cblas_ztrsv.c │ │ │ ├── cdotcsub.f │ │ │ ├── cdotusub.f │ │ │ ├── dasumsub.f │ │ │ ├── ddotsub.f │ │ │ ├── dnrm2sub.f │ │ │ ├── dsdotsub.f │ │ │ ├── dzasumsub.f │ │ │ ├── dznrm2sub.f │ │ │ ├── icamaxsub.f │ │ │ ├── idamaxsub.f │ │ │ ├── isamaxsub.f │ │ │ ├── izamaxsub.f │ │ │ ├── sasumsub.f │ │ │ ├── scasumsub.f │ │ │ ├── scnrm2sub.f │ │ │ ├── sdotsub.f │ │ │ ├── sdsdotsub.f │ │ │ ├── snrm2sub.f │ │ │ ├── xerbla.c │ │ │ ├── zdotcsub.f │ │ │ └── zdotusub.f │ │ └── testing/ │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── auxiliary.c │ │ ├── c_c2chke.c │ │ ├── c_c3chke.c │ │ ├── c_cblas1.c │ │ ├── c_cblas2.c │ │ ├── c_cblas3.c │ │ ├── c_cblat1.f │ │ ├── c_cblat2.f │ │ ├── c_cblat3.f │ │ ├── c_d2chke.c │ │ ├── c_d3chke.c │ │ ├── c_dblas1.c │ │ ├── c_dblas2.c │ │ ├── c_dblas3.c │ │ ├── c_dblat1.f │ │ ├── c_dblat2.f │ │ ├── c_dblat3.f │ │ ├── c_s2chke.c │ │ ├── c_s3chke.c │ │ ├── c_sblas1.c │ │ ├── c_sblas2.c │ │ ├── c_sblas3.c │ │ ├── c_sblat1.f │ │ ├── c_sblat2.f │ │ ├── c_sblat3.f │ │ ├── c_xerbla.c │ │ ├── c_z2chke.c │ │ ├── c_z3chke.c │ │ ├── c_zblas1.c │ │ ├── c_zblas2.c │ │ ├── c_zblas3.c │ │ ├── c_zblat1.f │ │ ├── c_zblat2.f │ │ ├── c_zblat3.f │ │ ├── cin2 │ │ ├── cin3 │ │ ├── din2 │ │ ├── din3 │ │ ├── sin2 │ │ ├── sin3 │ │ ├── zin2 │ │ └── zin3 │ ├── CMAKE/ │ │ ├── CheckFortranTypeSizes.cmake │ │ ├── CheckLAPACKCompilerFlags.cmake │ │ ├── CheckTimeFunction.cmake │ │ ├── FindGcov.cmake │ │ ├── Findcodecov.cmake │ │ ├── FortranMangling.cmake │ │ ├── PreventInBuildInstalls.cmake │ │ ├── PreventInSourceBuilds.cmake │ │ ├── lapack-config-build.cmake.in │ │ └── lapack-config-install.cmake.in │ ├── CMakeLists.txt │ ├── CTestConfig.cmake │ ├── CTestCustom.cmake.in │ ├── DOCS/ │ │ ├── Doxyfile │ │ ├── Doxyfile_man │ │ ├── DoxygenLayout.xml │ │ ├── groups-usr.dox │ │ ├── lawn81.tex │ │ └── org2.ps │ ├── INSTALL/ │ │ ├── CMakeLists.txt │ │ ├── LAPACK_version.f │ │ ├── Makefile │ │ ├── dlamch.c │ │ ├── dlamch.f │ │ ├── dlamchf77.f │ │ ├── dlamchtst.f │ │ ├── droundup_lwork.c │ │ ├── droundup_lwork.f │ │ ├── dsecnd_EXT_ETIME.f │ │ ├── dsecnd_EXT_ETIME_.f │ │ ├── dsecnd_INT_CPU_TIME.f │ │ ├── dsecnd_INT_ETIME.c │ │ ├── dsecnd_INT_ETIME.f │ │ ├── dsecnd_NONE.c │ │ ├── dsecnd_NONE.f │ │ ├── dsecndtst.f │ │ ├── ilaver.c │ │ ├── ilaver.f │ │ ├── lsame.c │ │ ├── lsame.f │ │ ├── lsametst.c │ │ ├── lsametst.f │ │ ├── make.inc.ALPHA │ │ ├── make.inc.HPPA │ │ ├── make.inc.IRIX64 │ │ ├── make.inc.O2K │ │ ├── make.inc.SGI5 │ │ ├── make.inc.SUN4 │ │ ├── make.inc.SUN4SOL2 │ │ ├── make.inc.XLF │ │ ├── make.inc.gfortran │ │ ├── make.inc.gfortran_debug │ │ ├── make.inc.ifort │ │ ├── make.inc.pgf95 │ │ ├── make.inc.pghpf │ │ ├── second_EXT_ETIME.f │ │ ├── second_EXT_ETIME_.f │ │ ├── second_INT_CPU_TIME.f │ │ ├── second_INT_ETIME.c │ │ ├── second_INT_ETIME.f │ │ ├── second_NONE.c │ │ ├── second_NONE.f │ │ ├── secondtst.c │ │ ├── secondtst.f │ │ ├── slamch.c │ │ ├── slamch.f │ │ ├── slamchf77.f │ │ ├── slamchtst.f │ │ ├── sroundup_lwork.c │ │ ├── sroundup_lwork.f │ │ └── tstiee.f │ ├── LAPACKE/ │ │ ├── CMakeLists.txt │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README │ │ ├── cmake/ │ │ │ ├── lapacke-config-build.cmake.in │ │ │ ├── lapacke-config-install.cmake.in │ │ │ └── lapacke-config-version.cmake.in │ │ ├── example/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── example_DGELS_colmajor.c │ │ │ ├── example_DGELS_rowmajor.c │ │ │ ├── example_DGESV_colmajor.c │ │ │ ├── example_DGESV_rowmajor.c │ │ │ ├── example_user.c │ │ │ ├── lapacke_example_aux.c │ │ │ └── lapacke_example_aux.h │ │ ├── include/ │ │ │ ├── CMakeLists.txt │ │ │ ├── lapack.h │ │ │ ├── lapacke.h │ │ │ ├── lapacke_config.h │ │ │ ├── lapacke_mangling.h │ │ │ ├── lapacke_mangling_with_flags.h.in │ │ │ └── lapacke_utils.h │ │ ├── lapacke.pc.in │ │ ├── mangling/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Cintface.c │ │ │ └── Fintface.f │ │ ├── src/ │ │ │ ├── CMakeLists.txt │ │ │ ├── Makefile │ │ │ ├── lapacke_cbbcsd.c │ │ │ ├── lapacke_cbbcsd_work.c │ │ │ ├── lapacke_cbdsqr.c │ │ │ ├── lapacke_cbdsqr_work.c │ │ │ ├── lapacke_cgbbrd.c │ │ │ ├── lapacke_cgbbrd_work.c │ │ │ ├── lapacke_cgbcon.c │ │ │ ├── lapacke_cgbcon_work.c │ │ │ ├── lapacke_cgbequ.c │ │ │ ├── lapacke_cgbequ_work.c │ │ │ ├── lapacke_cgbequb.c │ │ │ ├── lapacke_cgbequb_work.c │ │ │ ├── lapacke_cgbrfs.c │ │ │ ├── lapacke_cgbrfs_work.c │ │ │ ├── lapacke_cgbrfsx.c │ │ │ ├── lapacke_cgbrfsx_work.c │ │ │ ├── lapacke_cgbsv.c │ │ │ ├── lapacke_cgbsv_work.c │ │ │ ├── lapacke_cgbsvx.c │ │ │ ├── lapacke_cgbsvx_work.c │ │ │ ├── lapacke_cgbsvxx.c │ │ │ ├── lapacke_cgbsvxx_work.c │ │ │ ├── lapacke_cgbtrf.c │ │ │ ├── lapacke_cgbtrf_work.c │ │ │ ├── lapacke_cgbtrs.c │ │ │ ├── lapacke_cgbtrs_work.c │ │ │ ├── lapacke_cgebak.c │ │ │ ├── lapacke_cgebak_work.c │ │ │ ├── lapacke_cgebal.c │ │ │ ├── lapacke_cgebal_work.c │ │ │ ├── lapacke_cgebrd.c │ │ │ ├── lapacke_cgebrd_work.c │ │ │ ├── lapacke_cgecon.c │ │ │ ├── lapacke_cgecon_work.c │ │ │ ├── lapacke_cgedmd.c │ │ │ ├── lapacke_cgedmd_work.c │ │ │ ├── lapacke_cgedmdq.c │ │ │ ├── lapacke_cgedmdq_work.c │ │ │ ├── lapacke_cgeequ.c │ │ │ ├── lapacke_cgeequ_work.c │ │ │ ├── lapacke_cgeequb.c │ │ │ ├── lapacke_cgeequb_work.c │ │ │ ├── lapacke_cgees.c │ │ │ ├── lapacke_cgees_work.c │ │ │ ├── lapacke_cgeesx.c │ │ │ ├── lapacke_cgeesx_work.c │ │ │ ├── lapacke_cgeev.c │ │ │ ├── lapacke_cgeev_work.c │ │ │ ├── lapacke_cgeevx.c │ │ │ ├── lapacke_cgeevx_work.c │ │ │ ├── lapacke_cgehrd.c │ │ │ ├── lapacke_cgehrd_work.c │ │ │ ├── lapacke_cgejsv.c │ │ │ ├── lapacke_cgejsv_work.c │ │ │ ├── lapacke_cgelq.c │ │ │ ├── lapacke_cgelq2.c │ │ │ ├── lapacke_cgelq2_work.c │ │ │ ├── lapacke_cgelq_work.c │ │ │ ├── lapacke_cgelqf.c │ │ │ ├── lapacke_cgelqf_work.c │ │ │ ├── lapacke_cgels.c │ │ │ ├── lapacke_cgels_work.c │ │ │ ├── lapacke_cgelsd.c │ │ │ ├── lapacke_cgelsd_work.c │ │ │ ├── lapacke_cgelss.c │ │ │ ├── lapacke_cgelss_work.c │ │ │ ├── lapacke_cgelsy.c │ │ │ ├── lapacke_cgelsy_work.c │ │ │ ├── lapacke_cgemlq.c │ │ │ ├── lapacke_cgemlq_work.c │ │ │ ├── lapacke_cgemqr.c │ │ │ ├── lapacke_cgemqr_work.c │ │ │ ├── lapacke_cgemqrt.c │ │ │ ├── lapacke_cgemqrt_work.c │ │ │ ├── lapacke_cgeqlf.c │ │ │ ├── lapacke_cgeqlf_work.c │ │ │ ├── lapacke_cgeqp3.c │ │ │ ├── lapacke_cgeqp3_work.c │ │ │ ├── lapacke_cgeqpf.c │ │ │ ├── lapacke_cgeqpf_work.c │ │ │ ├── lapacke_cgeqr.c │ │ │ ├── lapacke_cgeqr2.c │ │ │ ├── lapacke_cgeqr2_work.c │ │ │ ├── lapacke_cgeqr_work.c │ │ │ ├── lapacke_cgeqrf.c │ │ │ ├── lapacke_cgeqrf_work.c │ │ │ ├── lapacke_cgeqrfp.c │ │ │ ├── lapacke_cgeqrfp_work.c │ │ │ ├── lapacke_cgeqrt.c │ │ │ ├── lapacke_cgeqrt2.c │ │ │ ├── lapacke_cgeqrt2_work.c │ │ │ ├── lapacke_cgeqrt3.c │ │ │ ├── lapacke_cgeqrt3_work.c │ │ │ ├── lapacke_cgeqrt_work.c │ │ │ ├── lapacke_cgerfs.c │ │ │ ├── lapacke_cgerfs_work.c │ │ │ ├── lapacke_cgerfsx.c │ │ │ ├── lapacke_cgerfsx_work.c │ │ │ ├── lapacke_cgerqf.c │ │ │ ├── lapacke_cgerqf_work.c │ │ │ ├── lapacke_cgesdd.c │ │ │ ├── lapacke_cgesdd_work.c │ │ │ ├── lapacke_cgesv.c │ │ │ ├── lapacke_cgesv_work.c │ │ │ ├── lapacke_cgesvd.c │ │ │ ├── lapacke_cgesvd_work.c │ │ │ ├── lapacke_cgesvdq.c │ │ │ ├── lapacke_cgesvdq_work.c │ │ │ ├── lapacke_cgesvdx.c │ │ │ ├── lapacke_cgesvdx_work.c │ │ │ ├── lapacke_cgesvj.c │ │ │ ├── lapacke_cgesvj_work.c │ │ │ ├── lapacke_cgesvx.c │ │ │ ├── lapacke_cgesvx_work.c │ │ │ ├── lapacke_cgesvxx.c │ │ │ ├── lapacke_cgesvxx_work.c │ │ │ ├── lapacke_cgetf2.c │ │ │ ├── lapacke_cgetf2_work.c │ │ │ ├── lapacke_cgetrf.c │ │ │ ├── lapacke_cgetrf2.c │ │ │ ├── lapacke_cgetrf2_work.c │ │ │ ├── lapacke_cgetrf_work.c │ │ │ ├── lapacke_cgetri.c │ │ │ ├── lapacke_cgetri_work.c │ │ │ ├── lapacke_cgetrs.c │ │ │ ├── lapacke_cgetrs_work.c │ │ │ ├── lapacke_cgetsls.c │ │ │ ├── lapacke_cgetsls_work.c │ │ │ ├── lapacke_cgetsqrhrt.c │ │ │ ├── lapacke_cgetsqrhrt_work.c │ │ │ ├── lapacke_cggbak.c │ │ │ ├── lapacke_cggbak_work.c │ │ │ ├── lapacke_cggbal.c │ │ │ ├── lapacke_cggbal_work.c │ │ │ ├── lapacke_cgges.c │ │ │ ├── lapacke_cgges3.c │ │ │ ├── lapacke_cgges3_work.c │ │ │ ├── lapacke_cgges_work.c │ │ │ ├── lapacke_cggesx.c │ │ │ ├── lapacke_cggesx_work.c │ │ │ ├── lapacke_cggev.c │ │ │ ├── lapacke_cggev3.c │ │ │ ├── lapacke_cggev3_work.c │ │ │ ├── lapacke_cggev_work.c │ │ │ ├── lapacke_cggevx.c │ │ │ ├── lapacke_cggevx_work.c │ │ │ ├── lapacke_cggglm.c │ │ │ ├── lapacke_cggglm_work.c │ │ │ ├── lapacke_cgghd3.c │ │ │ ├── lapacke_cgghd3_work.c │ │ │ ├── lapacke_cgghrd.c │ │ │ ├── lapacke_cgghrd_work.c │ │ │ ├── lapacke_cgglse.c │ │ │ ├── lapacke_cgglse_work.c │ │ │ ├── lapacke_cggqrf.c │ │ │ ├── lapacke_cggqrf_work.c │ │ │ ├── lapacke_cggrqf.c │ │ │ ├── lapacke_cggrqf_work.c │ │ │ ├── lapacke_cggsvd.c │ │ │ ├── lapacke_cggsvd3.c │ │ │ ├── lapacke_cggsvd3_work.c │ │ │ ├── lapacke_cggsvd_work.c │ │ │ ├── lapacke_cggsvp.c │ │ │ ├── lapacke_cggsvp3.c │ │ │ ├── lapacke_cggsvp3_work.c │ │ │ ├── lapacke_cggsvp_work.c │ │ │ ├── lapacke_cgtcon.c │ │ │ ├── lapacke_cgtcon_work.c │ │ │ ├── lapacke_cgtrfs.c │ │ │ ├── lapacke_cgtrfs_work.c │ │ │ ├── lapacke_cgtsv.c │ │ │ ├── lapacke_cgtsv_work.c │ │ │ ├── lapacke_cgtsvx.c │ │ │ ├── lapacke_cgtsvx_work.c │ │ │ ├── lapacke_cgttrf.c │ │ │ ├── lapacke_cgttrf_work.c │ │ │ ├── lapacke_cgttrs.c │ │ │ ├── lapacke_cgttrs_work.c │ │ │ ├── lapacke_chbev.c │ │ │ ├── lapacke_chbev_2stage.c │ │ │ ├── lapacke_chbev_2stage_work.c │ │ │ ├── lapacke_chbev_work.c │ │ │ ├── lapacke_chbevd.c │ │ │ ├── lapacke_chbevd_2stage.c │ │ │ ├── lapacke_chbevd_2stage_work.c │ │ │ ├── lapacke_chbevd_work.c │ │ │ ├── lapacke_chbevx.c │ │ │ ├── lapacke_chbevx_2stage.c │ │ │ ├── lapacke_chbevx_2stage_work.c │ │ │ ├── lapacke_chbevx_work.c │ │ │ ├── lapacke_chbgst.c │ │ │ ├── lapacke_chbgst_work.c │ │ │ ├── lapacke_chbgv.c │ │ │ ├── lapacke_chbgv_work.c │ │ │ ├── lapacke_chbgvd.c │ │ │ ├── lapacke_chbgvd_work.c │ │ │ ├── lapacke_chbgvx.c │ │ │ ├── lapacke_chbgvx_work.c │ │ │ ├── lapacke_chbtrd.c │ │ │ ├── lapacke_chbtrd_work.c │ │ │ ├── lapacke_checon.c │ │ │ ├── lapacke_checon_3.c │ │ │ ├── lapacke_checon_3_work.c │ │ │ ├── lapacke_checon_work.c │ │ │ ├── lapacke_cheequb.c │ │ │ ├── lapacke_cheequb_work.c │ │ │ ├── lapacke_cheev.c │ │ │ ├── lapacke_cheev_2stage.c │ │ │ ├── lapacke_cheev_2stage_work.c │ │ │ ├── lapacke_cheev_work.c │ │ │ ├── lapacke_cheevd.c │ │ │ ├── lapacke_cheevd_2stage.c │ │ │ ├── lapacke_cheevd_2stage_work.c │ │ │ ├── lapacke_cheevd_work.c │ │ │ ├── lapacke_cheevr.c │ │ │ ├── lapacke_cheevr_2stage.c │ │ │ ├── lapacke_cheevr_2stage_work.c │ │ │ ├── lapacke_cheevr_work.c │ │ │ ├── lapacke_cheevx.c │ │ │ ├── lapacke_cheevx_2stage.c │ │ │ ├── lapacke_cheevx_2stage_work.c │ │ │ ├── lapacke_cheevx_work.c │ │ │ ├── lapacke_chegst.c │ │ │ ├── lapacke_chegst_work.c │ │ │ ├── lapacke_chegv.c │ │ │ ├── lapacke_chegv_2stage.c │ │ │ ├── lapacke_chegv_2stage_work.c │ │ │ ├── lapacke_chegv_work.c │ │ │ ├── lapacke_chegvd.c │ │ │ ├── lapacke_chegvd_work.c │ │ │ ├── lapacke_chegvx.c │ │ │ ├── lapacke_chegvx_work.c │ │ │ ├── lapacke_cherfs.c │ │ │ ├── lapacke_cherfs_work.c │ │ │ ├── lapacke_cherfsx.c │ │ │ ├── lapacke_cherfsx_work.c │ │ │ ├── lapacke_chesv.c │ │ │ ├── lapacke_chesv_aa.c │ │ │ ├── lapacke_chesv_aa_2stage.c │ │ │ ├── lapacke_chesv_aa_2stage_work.c │ │ │ ├── lapacke_chesv_aa_work.c │ │ │ ├── lapacke_chesv_rk.c │ │ │ ├── lapacke_chesv_rk_work.c │ │ │ ├── lapacke_chesv_work.c │ │ │ ├── lapacke_chesvx.c │ │ │ ├── lapacke_chesvx_work.c │ │ │ ├── lapacke_chesvxx.c │ │ │ ├── lapacke_chesvxx_work.c │ │ │ ├── lapacke_cheswapr.c │ │ │ ├── lapacke_cheswapr_work.c │ │ │ ├── lapacke_chetrd.c │ │ │ ├── lapacke_chetrd_work.c │ │ │ ├── lapacke_chetrf.c │ │ │ ├── lapacke_chetrf_aa.c │ │ │ ├── lapacke_chetrf_aa_2stage.c │ │ │ ├── lapacke_chetrf_aa_2stage_work.c │ │ │ ├── lapacke_chetrf_aa_work.c │ │ │ ├── lapacke_chetrf_rk.c │ │ │ ├── lapacke_chetrf_rk_work.c │ │ │ ├── lapacke_chetrf_rook.c │ │ │ ├── lapacke_chetrf_rook_work.c │ │ │ ├── lapacke_chetrf_work.c │ │ │ ├── lapacke_chetri.c │ │ │ ├── lapacke_chetri2.c │ │ │ ├── lapacke_chetri2_work.c │ │ │ ├── lapacke_chetri2x.c │ │ │ ├── lapacke_chetri2x_work.c │ │ │ ├── lapacke_chetri_3.c │ │ │ ├── lapacke_chetri_3_work.c │ │ │ ├── lapacke_chetri_work.c │ │ │ ├── lapacke_chetrs.c │ │ │ ├── lapacke_chetrs2.c │ │ │ ├── lapacke_chetrs2_work.c │ │ │ ├── lapacke_chetrs_3.c │ │ │ ├── lapacke_chetrs_3_work.c │ │ │ ├── lapacke_chetrs_aa.c │ │ │ ├── lapacke_chetrs_aa_2stage.c │ │ │ ├── lapacke_chetrs_aa_2stage_work.c │ │ │ ├── lapacke_chetrs_aa_work.c │ │ │ ├── lapacke_chetrs_rook.c │ │ │ ├── lapacke_chetrs_rook_work.c │ │ │ ├── lapacke_chetrs_work.c │ │ │ ├── lapacke_chfrk.c │ │ │ ├── lapacke_chfrk_work.c │ │ │ ├── lapacke_chgeqz.c │ │ │ ├── lapacke_chgeqz_work.c │ │ │ ├── lapacke_chpcon.c │ │ │ ├── lapacke_chpcon_work.c │ │ │ ├── lapacke_chpev.c │ │ │ ├── lapacke_chpev_work.c │ │ │ ├── lapacke_chpevd.c │ │ │ ├── lapacke_chpevd_work.c │ │ │ ├── lapacke_chpevx.c │ │ │ ├── lapacke_chpevx_work.c │ │ │ ├── lapacke_chpgst.c │ │ │ ├── lapacke_chpgst_work.c │ │ │ ├── lapacke_chpgv.c │ │ │ ├── lapacke_chpgv_work.c │ │ │ ├── lapacke_chpgvd.c │ │ │ ├── lapacke_chpgvd_work.c │ │ │ ├── lapacke_chpgvx.c │ │ │ ├── lapacke_chpgvx_work.c │ │ │ ├── lapacke_chprfs.c │ │ │ ├── lapacke_chprfs_work.c │ │ │ ├── lapacke_chpsv.c │ │ │ ├── lapacke_chpsv_work.c │ │ │ ├── lapacke_chpsvx.c │ │ │ ├── lapacke_chpsvx_work.c │ │ │ ├── lapacke_chptrd.c │ │ │ ├── lapacke_chptrd_work.c │ │ │ ├── lapacke_chptrf.c │ │ │ ├── lapacke_chptrf_work.c │ │ │ ├── lapacke_chptri.c │ │ │ ├── lapacke_chptri_work.c │ │ │ ├── lapacke_chptrs.c │ │ │ ├── lapacke_chptrs_work.c │ │ │ ├── lapacke_chsein.c │ │ │ ├── lapacke_chsein_work.c │ │ │ ├── lapacke_chseqr.c │ │ │ ├── lapacke_chseqr_work.c │ │ │ ├── lapacke_clacgv.c │ │ │ ├── lapacke_clacgv_work.c │ │ │ ├── lapacke_clacn2.c │ │ │ ├── lapacke_clacn2_work.c │ │ │ ├── lapacke_clacp2.c │ │ │ ├── lapacke_clacp2_work.c │ │ │ ├── lapacke_clacpy.c │ │ │ ├── lapacke_clacpy_work.c │ │ │ ├── lapacke_clacrm.c │ │ │ ├── lapacke_clacrm_work.c │ │ │ ├── lapacke_clag2z.c │ │ │ ├── lapacke_clag2z_work.c │ │ │ ├── lapacke_clagge.c │ │ │ ├── lapacke_clagge_work.c │ │ │ ├── lapacke_claghe.c │ │ │ ├── lapacke_claghe_work.c │ │ │ ├── lapacke_clagsy.c │ │ │ ├── lapacke_clagsy_work.c │ │ │ ├── lapacke_clangb.c │ │ │ ├── lapacke_clangb_work.c │ │ │ ├── lapacke_clange.c │ │ │ ├── lapacke_clange_work.c │ │ │ ├── lapacke_clanhe.c │ │ │ ├── lapacke_clanhe_work.c │ │ │ ├── lapacke_clansy.c │ │ │ ├── lapacke_clansy_work.c │ │ │ ├── lapacke_clantr.c │ │ │ ├── lapacke_clantr_work.c │ │ │ ├── lapacke_clapmr.c │ │ │ ├── lapacke_clapmr_work.c │ │ │ ├── lapacke_clapmt.c │ │ │ ├── lapacke_clapmt_work.c │ │ │ ├── lapacke_clarcm.c │ │ │ ├── lapacke_clarcm_work.c │ │ │ ├── lapacke_clarfb.c │ │ │ ├── lapacke_clarfb_work.c │ │ │ ├── lapacke_clarfg.c │ │ │ ├── lapacke_clarfg_work.c │ │ │ ├── lapacke_clarft.c │ │ │ ├── lapacke_clarft_work.c │ │ │ ├── lapacke_clarfx.c │ │ │ ├── lapacke_clarfx_work.c │ │ │ ├── lapacke_clarnv.c │ │ │ ├── lapacke_clarnv_work.c │ │ │ ├── lapacke_clascl.c │ │ │ ├── lapacke_clascl_work.c │ │ │ ├── lapacke_claset.c │ │ │ ├── lapacke_claset_work.c │ │ │ ├── lapacke_classq.c │ │ │ ├── lapacke_classq_work.c │ │ │ ├── lapacke_claswp.c │ │ │ ├── lapacke_claswp_work.c │ │ │ ├── lapacke_clatms.c │ │ │ ├── lapacke_clatms_work.c │ │ │ ├── lapacke_clauum.c │ │ │ ├── lapacke_clauum_work.c │ │ │ ├── lapacke_cpbcon.c │ │ │ ├── lapacke_cpbcon_work.c │ │ │ ├── lapacke_cpbequ.c │ │ │ ├── lapacke_cpbequ_work.c │ │ │ ├── lapacke_cpbrfs.c │ │ │ ├── lapacke_cpbrfs_work.c │ │ │ ├── lapacke_cpbstf.c │ │ │ ├── lapacke_cpbstf_work.c │ │ │ ├── lapacke_cpbsv.c │ │ │ ├── lapacke_cpbsv_work.c │ │ │ ├── lapacke_cpbsvx.c │ │ │ ├── lapacke_cpbsvx_work.c │ │ │ ├── lapacke_cpbtrf.c │ │ │ ├── lapacke_cpbtrf_work.c │ │ │ ├── lapacke_cpbtrs.c │ │ │ ├── lapacke_cpbtrs_work.c │ │ │ ├── lapacke_cpftrf.c │ │ │ ├── lapacke_cpftrf_work.c │ │ │ ├── lapacke_cpftri.c │ │ │ ├── lapacke_cpftri_work.c │ │ │ ├── lapacke_cpftrs.c │ │ │ ├── lapacke_cpftrs_work.c │ │ │ ├── lapacke_cpocon.c │ │ │ ├── lapacke_cpocon_work.c │ │ │ ├── lapacke_cpoequ.c │ │ │ ├── lapacke_cpoequ_work.c │ │ │ ├── lapacke_cpoequb.c │ │ │ ├── lapacke_cpoequb_work.c │ │ │ ├── lapacke_cporfs.c │ │ │ ├── lapacke_cporfs_work.c │ │ │ ├── lapacke_cporfsx.c │ │ │ ├── lapacke_cporfsx_work.c │ │ │ ├── lapacke_cposv.c │ │ │ ├── lapacke_cposv_work.c │ │ │ ├── lapacke_cposvx.c │ │ │ ├── lapacke_cposvx_work.c │ │ │ ├── lapacke_cposvxx.c │ │ │ ├── lapacke_cposvxx_work.c │ │ │ ├── lapacke_cpotrf.c │ │ │ ├── lapacke_cpotrf2.c │ │ │ ├── lapacke_cpotrf2_work.c │ │ │ ├── lapacke_cpotrf_work.c │ │ │ ├── lapacke_cpotri.c │ │ │ ├── lapacke_cpotri_work.c │ │ │ ├── lapacke_cpotrs.c │ │ │ ├── lapacke_cpotrs_work.c │ │ │ ├── lapacke_cppcon.c │ │ │ ├── lapacke_cppcon_work.c │ │ │ ├── lapacke_cppequ.c │ │ │ ├── lapacke_cppequ_work.c │ │ │ ├── lapacke_cpprfs.c │ │ │ ├── lapacke_cpprfs_work.c │ │ │ ├── lapacke_cppsv.c │ │ │ ├── lapacke_cppsv_work.c │ │ │ ├── lapacke_cppsvx.c │ │ │ ├── lapacke_cppsvx_work.c │ │ │ ├── lapacke_cpptrf.c │ │ │ ├── lapacke_cpptrf_work.c │ │ │ ├── lapacke_cpptri.c │ │ │ ├── lapacke_cpptri_work.c │ │ │ ├── lapacke_cpptrs.c │ │ │ ├── lapacke_cpptrs_work.c │ │ │ ├── lapacke_cpstrf.c │ │ │ ├── lapacke_cpstrf_work.c │ │ │ ├── lapacke_cptcon.c │ │ │ ├── lapacke_cptcon_work.c │ │ │ ├── lapacke_cpteqr.c │ │ │ ├── lapacke_cpteqr_work.c │ │ │ ├── lapacke_cptrfs.c │ │ │ ├── lapacke_cptrfs_work.c │ │ │ ├── lapacke_cptsv.c │ │ │ ├── lapacke_cptsv_work.c │ │ │ ├── lapacke_cptsvx.c │ │ │ ├── lapacke_cptsvx_work.c │ │ │ ├── lapacke_cpttrf.c │ │ │ ├── lapacke_cpttrf_work.c │ │ │ ├── lapacke_cpttrs.c │ │ │ ├── lapacke_cpttrs_work.c │ │ │ ├── lapacke_cspcon.c │ │ │ ├── lapacke_cspcon_work.c │ │ │ ├── lapacke_csprfs.c │ │ │ ├── lapacke_csprfs_work.c │ │ │ ├── lapacke_cspsv.c │ │ │ ├── lapacke_cspsv_work.c │ │ │ ├── lapacke_cspsvx.c │ │ │ ├── lapacke_cspsvx_work.c │ │ │ ├── lapacke_csptrf.c │ │ │ ├── lapacke_csptrf_work.c │ │ │ ├── lapacke_csptri.c │ │ │ ├── lapacke_csptri_work.c │ │ │ ├── lapacke_csptrs.c │ │ │ ├── lapacke_csptrs_work.c │ │ │ ├── lapacke_cstedc.c │ │ │ ├── lapacke_cstedc_work.c │ │ │ ├── lapacke_cstegr.c │ │ │ ├── lapacke_cstegr_work.c │ │ │ ├── lapacke_cstein.c │ │ │ ├── lapacke_cstein_work.c │ │ │ ├── lapacke_cstemr.c │ │ │ ├── lapacke_cstemr_work.c │ │ │ ├── lapacke_csteqr.c │ │ │ ├── lapacke_csteqr_work.c │ │ │ ├── lapacke_csycon.c │ │ │ ├── lapacke_csycon_3.c │ │ │ ├── lapacke_csycon_3_work.c │ │ │ ├── lapacke_csycon_work.c │ │ │ ├── lapacke_csyconv.c │ │ │ ├── lapacke_csyconv_work.c │ │ │ ├── lapacke_csyequb.c │ │ │ ├── lapacke_csyequb_work.c │ │ │ ├── lapacke_csyr.c │ │ │ ├── lapacke_csyr_work.c │ │ │ ├── lapacke_csyrfs.c │ │ │ ├── lapacke_csyrfs_work.c │ │ │ ├── lapacke_csyrfsx.c │ │ │ ├── lapacke_csyrfsx_work.c │ │ │ ├── lapacke_csysv.c │ │ │ ├── lapacke_csysv_aa.c │ │ │ ├── lapacke_csysv_aa_2stage.c │ │ │ ├── lapacke_csysv_aa_2stage_work.c │ │ │ ├── lapacke_csysv_aa_work.c │ │ │ ├── lapacke_csysv_rk.c │ │ │ ├── lapacke_csysv_rk_work.c │ │ │ ├── lapacke_csysv_rook.c │ │ │ ├── lapacke_csysv_rook_work.c │ │ │ ├── lapacke_csysv_work.c │ │ │ ├── lapacke_csysvx.c │ │ │ ├── lapacke_csysvx_work.c │ │ │ ├── lapacke_csysvxx.c │ │ │ ├── lapacke_csysvxx_work.c │ │ │ ├── lapacke_csyswapr.c │ │ │ ├── lapacke_csyswapr_work.c │ │ │ ├── lapacke_csytrf.c │ │ │ ├── lapacke_csytrf_aa.c │ │ │ ├── lapacke_csytrf_aa_2stage.c │ │ │ ├── lapacke_csytrf_aa_2stage_work.c │ │ │ ├── lapacke_csytrf_aa_work.c │ │ │ ├── lapacke_csytrf_rk.c │ │ │ ├── lapacke_csytrf_rk_work.c │ │ │ ├── lapacke_csytrf_rook.c │ │ │ ├── lapacke_csytrf_rook_work.c │ │ │ ├── lapacke_csytrf_work.c │ │ │ ├── lapacke_csytri.c │ │ │ ├── lapacke_csytri2.c │ │ │ ├── lapacke_csytri2_work.c │ │ │ ├── lapacke_csytri2x.c │ │ │ ├── lapacke_csytri2x_work.c │ │ │ ├── lapacke_csytri_3.c │ │ │ ├── lapacke_csytri_3_work.c │ │ │ ├── lapacke_csytri_work.c │ │ │ ├── lapacke_csytrs.c │ │ │ ├── lapacke_csytrs2.c │ │ │ ├── lapacke_csytrs2_work.c │ │ │ ├── lapacke_csytrs_3.c │ │ │ ├── lapacke_csytrs_3_work.c │ │ │ ├── lapacke_csytrs_aa.c │ │ │ ├── lapacke_csytrs_aa_2stage.c │ │ │ ├── lapacke_csytrs_aa_2stage_work.c │ │ │ ├── lapacke_csytrs_aa_work.c │ │ │ ├── lapacke_csytrs_rook.c │ │ │ ├── lapacke_csytrs_rook_work.c │ │ │ ├── lapacke_csytrs_work.c │ │ │ ├── lapacke_ctbcon.c │ │ │ ├── lapacke_ctbcon_work.c │ │ │ ├── lapacke_ctbrfs.c │ │ │ ├── lapacke_ctbrfs_work.c │ │ │ ├── lapacke_ctbtrs.c │ │ │ ├── lapacke_ctbtrs_work.c │ │ │ ├── lapacke_ctfsm.c │ │ │ ├── lapacke_ctfsm_work.c │ │ │ ├── lapacke_ctftri.c │ │ │ ├── lapacke_ctftri_work.c │ │ │ ├── lapacke_ctfttp.c │ │ │ ├── lapacke_ctfttp_work.c │ │ │ ├── lapacke_ctfttr.c │ │ │ ├── lapacke_ctfttr_work.c │ │ │ ├── lapacke_ctgevc.c │ │ │ ├── lapacke_ctgevc_work.c │ │ │ ├── lapacke_ctgexc.c │ │ │ ├── lapacke_ctgexc_work.c │ │ │ ├── lapacke_ctgsen.c │ │ │ ├── lapacke_ctgsen_work.c │ │ │ ├── lapacke_ctgsja.c │ │ │ ├── lapacke_ctgsja_work.c │ │ │ ├── lapacke_ctgsna.c │ │ │ ├── lapacke_ctgsna_work.c │ │ │ ├── lapacke_ctgsyl.c │ │ │ ├── lapacke_ctgsyl_work.c │ │ │ ├── lapacke_ctpcon.c │ │ │ ├── lapacke_ctpcon_work.c │ │ │ ├── lapacke_ctpmqrt.c │ │ │ ├── lapacke_ctpmqrt_work.c │ │ │ ├── lapacke_ctpqrt.c │ │ │ ├── lapacke_ctpqrt2.c │ │ │ ├── lapacke_ctpqrt2_work.c │ │ │ ├── lapacke_ctpqrt_work.c │ │ │ ├── lapacke_ctprfb.c │ │ │ ├── lapacke_ctprfb_work.c │ │ │ ├── lapacke_ctprfs.c │ │ │ ├── lapacke_ctprfs_work.c │ │ │ ├── lapacke_ctptri.c │ │ │ ├── lapacke_ctptri_work.c │ │ │ ├── lapacke_ctptrs.c │ │ │ ├── lapacke_ctptrs_work.c │ │ │ ├── lapacke_ctpttf.c │ │ │ ├── lapacke_ctpttf_work.c │ │ │ ├── lapacke_ctpttr.c │ │ │ ├── lapacke_ctpttr_work.c │ │ │ ├── lapacke_ctrcon.c │ │ │ ├── lapacke_ctrcon_work.c │ │ │ ├── lapacke_ctrevc.c │ │ │ ├── lapacke_ctrevc_work.c │ │ │ ├── lapacke_ctrexc.c │ │ │ ├── lapacke_ctrexc_work.c │ │ │ ├── lapacke_ctrrfs.c │ │ │ ├── lapacke_ctrrfs_work.c │ │ │ ├── lapacke_ctrsen.c │ │ │ ├── lapacke_ctrsen_work.c │ │ │ ├── lapacke_ctrsna.c │ │ │ ├── lapacke_ctrsna_work.c │ │ │ ├── lapacke_ctrsyl.c │ │ │ ├── lapacke_ctrsyl3.c │ │ │ ├── lapacke_ctrsyl3_work.c │ │ │ ├── lapacke_ctrsyl_work.c │ │ │ ├── lapacke_ctrtri.c │ │ │ ├── lapacke_ctrtri_work.c │ │ │ ├── lapacke_ctrtrs.c │ │ │ ├── lapacke_ctrtrs_work.c │ │ │ ├── lapacke_ctrttf.c │ │ │ ├── lapacke_ctrttf_work.c │ │ │ ├── lapacke_ctrttp.c │ │ │ ├── lapacke_ctrttp_work.c │ │ │ ├── lapacke_ctzrzf.c │ │ │ ├── lapacke_ctzrzf_work.c │ │ │ ├── lapacke_cunbdb.c │ │ │ ├── lapacke_cunbdb_work.c │ │ │ ├── lapacke_cuncsd.c │ │ │ ├── lapacke_cuncsd2by1.c │ │ │ ├── lapacke_cuncsd2by1_work.c │ │ │ ├── lapacke_cuncsd_work.c │ │ │ ├── lapacke_cungbr.c │ │ │ ├── lapacke_cungbr_work.c │ │ │ ├── lapacke_cunghr.c │ │ │ ├── lapacke_cunghr_work.c │ │ │ ├── lapacke_cunglq.c │ │ │ ├── lapacke_cunglq_work.c │ │ │ ├── lapacke_cungql.c │ │ │ ├── lapacke_cungql_work.c │ │ │ ├── lapacke_cungqr.c │ │ │ ├── lapacke_cungqr_work.c │ │ │ ├── lapacke_cungrq.c │ │ │ ├── lapacke_cungrq_work.c │ │ │ ├── lapacke_cungtr.c │ │ │ ├── lapacke_cungtr_work.c │ │ │ ├── lapacke_cungtsqr_row.c │ │ │ ├── lapacke_cungtsqr_row_work.c │ │ │ ├── lapacke_cunhr_col.c │ │ │ ├── lapacke_cunhr_col_work.c │ │ │ ├── lapacke_cunmbr.c │ │ │ ├── lapacke_cunmbr_work.c │ │ │ ├── lapacke_cunmhr.c │ │ │ ├── lapacke_cunmhr_work.c │ │ │ ├── lapacke_cunmlq.c │ │ │ ├── lapacke_cunmlq_work.c │ │ │ ├── lapacke_cunmql.c │ │ │ ├── lapacke_cunmql_work.c │ │ │ ├── lapacke_cunmqr.c │ │ │ ├── lapacke_cunmqr_work.c │ │ │ ├── lapacke_cunmrq.c │ │ │ ├── lapacke_cunmrq_work.c │ │ │ ├── lapacke_cunmrz.c │ │ │ ├── lapacke_cunmrz_work.c │ │ │ ├── lapacke_cunmtr.c │ │ │ ├── lapacke_cunmtr_work.c │ │ │ ├── lapacke_cupgtr.c │ │ │ ├── lapacke_cupgtr_work.c │ │ │ ├── lapacke_cupmtr.c │ │ │ ├── lapacke_cupmtr_work.c │ │ │ ├── lapacke_dbbcsd.c │ │ │ ├── lapacke_dbbcsd_work.c │ │ │ ├── lapacke_dbdsdc.c │ │ │ ├── lapacke_dbdsdc_work.c │ │ │ ├── lapacke_dbdsqr.c │ │ │ ├── lapacke_dbdsqr_work.c │ │ │ ├── lapacke_dbdsvdx.c │ │ │ ├── lapacke_dbdsvdx_work.c │ │ │ ├── lapacke_ddisna.c │ │ │ ├── lapacke_ddisna_work.c │ │ │ ├── lapacke_dgbbrd.c │ │ │ ├── lapacke_dgbbrd_work.c │ │ │ ├── lapacke_dgbcon.c │ │ │ ├── lapacke_dgbcon_work.c │ │ │ ├── lapacke_dgbequ.c │ │ │ ├── lapacke_dgbequ_work.c │ │ │ ├── lapacke_dgbequb.c │ │ │ ├── lapacke_dgbequb_work.c │ │ │ ├── lapacke_dgbrfs.c │ │ │ ├── lapacke_dgbrfs_work.c │ │ │ ├── lapacke_dgbrfsx.c │ │ │ ├── lapacke_dgbrfsx_work.c │ │ │ ├── lapacke_dgbsv.c │ │ │ ├── lapacke_dgbsv_work.c │ │ │ ├── lapacke_dgbsvx.c │ │ │ ├── lapacke_dgbsvx_work.c │ │ │ ├── lapacke_dgbsvxx.c │ │ │ ├── lapacke_dgbsvxx_work.c │ │ │ ├── lapacke_dgbtrf.c │ │ │ ├── lapacke_dgbtrf_work.c │ │ │ ├── lapacke_dgbtrs.c │ │ │ ├── lapacke_dgbtrs_work.c │ │ │ ├── lapacke_dgebak.c │ │ │ ├── lapacke_dgebak_work.c │ │ │ ├── lapacke_dgebal.c │ │ │ ├── lapacke_dgebal_work.c │ │ │ ├── lapacke_dgebrd.c │ │ │ ├── lapacke_dgebrd_work.c │ │ │ ├── lapacke_dgecon.c │ │ │ ├── lapacke_dgecon_work.c │ │ │ ├── lapacke_dgedmd.c │ │ │ ├── lapacke_dgedmd_work.c │ │ │ ├── lapacke_dgedmdq.c │ │ │ ├── lapacke_dgedmdq_work.c │ │ │ ├── lapacke_dgeequ.c │ │ │ ├── lapacke_dgeequ_work.c │ │ │ ├── lapacke_dgeequb.c │ │ │ ├── lapacke_dgeequb_work.c │ │ │ ├── lapacke_dgees.c │ │ │ ├── lapacke_dgees_work.c │ │ │ ├── lapacke_dgeesx.c │ │ │ ├── lapacke_dgeesx_work.c │ │ │ ├── lapacke_dgeev.c │ │ │ ├── lapacke_dgeev_work.c │ │ │ ├── lapacke_dgeevx.c │ │ │ ├── lapacke_dgeevx_work.c │ │ │ ├── lapacke_dgehrd.c │ │ │ ├── lapacke_dgehrd_work.c │ │ │ ├── lapacke_dgejsv.c │ │ │ ├── lapacke_dgejsv_work.c │ │ │ ├── lapacke_dgelq.c │ │ │ ├── lapacke_dgelq2.c │ │ │ ├── lapacke_dgelq2_work.c │ │ │ ├── lapacke_dgelq_work.c │ │ │ ├── lapacke_dgelqf.c │ │ │ ├── lapacke_dgelqf_work.c │ │ │ ├── lapacke_dgels.c │ │ │ ├── lapacke_dgels_work.c │ │ │ ├── lapacke_dgelsd.c │ │ │ ├── lapacke_dgelsd_work.c │ │ │ ├── lapacke_dgelss.c │ │ │ ├── lapacke_dgelss_work.c │ │ │ ├── lapacke_dgelsy.c │ │ │ ├── lapacke_dgelsy_work.c │ │ │ ├── lapacke_dgemlq.c │ │ │ ├── lapacke_dgemlq_work.c │ │ │ ├── lapacke_dgemqr.c │ │ │ ├── lapacke_dgemqr_work.c │ │ │ ├── lapacke_dgemqrt.c │ │ │ ├── lapacke_dgemqrt_work.c │ │ │ ├── lapacke_dgeqlf.c │ │ │ ├── lapacke_dgeqlf_work.c │ │ │ ├── lapacke_dgeqp3.c │ │ │ ├── lapacke_dgeqp3_work.c │ │ │ ├── lapacke_dgeqpf.c │ │ │ ├── lapacke_dgeqpf_work.c │ │ │ ├── lapacke_dgeqr.c │ │ │ ├── lapacke_dgeqr2.c │ │ │ ├── lapacke_dgeqr2_work.c │ │ │ ├── lapacke_dgeqr_work.c │ │ │ ├── lapacke_dgeqrf.c │ │ │ ├── lapacke_dgeqrf_work.c │ │ │ ├── lapacke_dgeqrfp.c │ │ │ ├── lapacke_dgeqrfp_work.c │ │ │ ├── lapacke_dgeqrt.c │ │ │ ├── lapacke_dgeqrt2.c │ │ │ ├── lapacke_dgeqrt2_work.c │ │ │ ├── lapacke_dgeqrt3.c │ │ │ ├── lapacke_dgeqrt3_work.c │ │ │ ├── lapacke_dgeqrt_work.c │ │ │ ├── lapacke_dgerfs.c │ │ │ ├── lapacke_dgerfs_work.c │ │ │ ├── lapacke_dgerfsx.c │ │ │ ├── lapacke_dgerfsx_work.c │ │ │ ├── lapacke_dgerqf.c │ │ │ ├── lapacke_dgerqf_work.c │ │ │ ├── lapacke_dgesdd.c │ │ │ ├── lapacke_dgesdd_work.c │ │ │ ├── lapacke_dgesv.c │ │ │ ├── lapacke_dgesv_work.c │ │ │ ├── lapacke_dgesvd.c │ │ │ ├── lapacke_dgesvd_work.c │ │ │ ├── lapacke_dgesvdq.c │ │ │ ├── lapacke_dgesvdq_work.c │ │ │ ├── lapacke_dgesvdx.c │ │ │ ├── lapacke_dgesvdx_work.c │ │ │ ├── lapacke_dgesvj.c │ │ │ ├── lapacke_dgesvj_work.c │ │ │ ├── lapacke_dgesvx.c │ │ │ ├── lapacke_dgesvx_work.c │ │ │ ├── lapacke_dgesvxx.c │ │ │ ├── lapacke_dgesvxx_work.c │ │ │ ├── lapacke_dgetf2.c │ │ │ ├── lapacke_dgetf2_work.c │ │ │ ├── lapacke_dgetrf.c │ │ │ ├── lapacke_dgetrf2.c │ │ │ ├── lapacke_dgetrf2_work.c │ │ │ ├── lapacke_dgetrf_work.c │ │ │ ├── lapacke_dgetri.c │ │ │ ├── lapacke_dgetri_work.c │ │ │ ├── lapacke_dgetrs.c │ │ │ ├── lapacke_dgetrs_work.c │ │ │ ├── lapacke_dgetsls.c │ │ │ ├── lapacke_dgetsls_work.c │ │ │ ├── lapacke_dgetsqrhrt.c │ │ │ ├── lapacke_dgetsqrhrt_work.c │ │ │ ├── lapacke_dggbak.c │ │ │ ├── lapacke_dggbak_work.c │ │ │ ├── lapacke_dggbal.c │ │ │ ├── lapacke_dggbal_work.c │ │ │ ├── lapacke_dgges.c │ │ │ ├── lapacke_dgges3.c │ │ │ ├── lapacke_dgges3_work.c │ │ │ ├── lapacke_dgges_work.c │ │ │ ├── lapacke_dggesx.c │ │ │ ├── lapacke_dggesx_work.c │ │ │ ├── lapacke_dggev.c │ │ │ ├── lapacke_dggev3.c │ │ │ ├── lapacke_dggev3_work.c │ │ │ ├── lapacke_dggev_work.c │ │ │ ├── lapacke_dggevx.c │ │ │ ├── lapacke_dggevx_work.c │ │ │ ├── lapacke_dggglm.c │ │ │ ├── lapacke_dggglm_work.c │ │ │ ├── lapacke_dgghd3.c │ │ │ ├── lapacke_dgghd3_work.c │ │ │ ├── lapacke_dgghrd.c │ │ │ ├── lapacke_dgghrd_work.c │ │ │ ├── lapacke_dgglse.c │ │ │ ├── lapacke_dgglse_work.c │ │ │ ├── lapacke_dggqrf.c │ │ │ ├── lapacke_dggqrf_work.c │ │ │ ├── lapacke_dggrqf.c │ │ │ ├── lapacke_dggrqf_work.c │ │ │ ├── lapacke_dggsvd.c │ │ │ ├── lapacke_dggsvd3.c │ │ │ ├── lapacke_dggsvd3_work.c │ │ │ ├── lapacke_dggsvd_work.c │ │ │ ├── lapacke_dggsvp.c │ │ │ ├── lapacke_dggsvp3.c │ │ │ ├── lapacke_dggsvp3_work.c │ │ │ ├── lapacke_dggsvp_work.c │ │ │ ├── lapacke_dgtcon.c │ │ │ ├── lapacke_dgtcon_work.c │ │ │ ├── lapacke_dgtrfs.c │ │ │ ├── lapacke_dgtrfs_work.c │ │ │ ├── lapacke_dgtsv.c │ │ │ ├── lapacke_dgtsv_work.c │ │ │ ├── lapacke_dgtsvx.c │ │ │ ├── lapacke_dgtsvx_work.c │ │ │ ├── lapacke_dgttrf.c │ │ │ ├── lapacke_dgttrf_work.c │ │ │ ├── lapacke_dgttrs.c │ │ │ ├── lapacke_dgttrs_work.c │ │ │ ├── lapacke_dhgeqz.c │ │ │ ├── lapacke_dhgeqz_work.c │ │ │ ├── lapacke_dhsein.c │ │ │ ├── lapacke_dhsein_work.c │ │ │ ├── lapacke_dhseqr.c │ │ │ ├── lapacke_dhseqr_work.c │ │ │ ├── lapacke_dlacn2.c │ │ │ ├── lapacke_dlacn2_work.c │ │ │ ├── lapacke_dlacpy.c │ │ │ ├── lapacke_dlacpy_work.c │ │ │ ├── lapacke_dlag2s.c │ │ │ ├── lapacke_dlag2s_work.c │ │ │ ├── lapacke_dlagge.c │ │ │ ├── lapacke_dlagge_work.c │ │ │ ├── lapacke_dlagsy.c │ │ │ ├── lapacke_dlagsy_work.c │ │ │ ├── lapacke_dlamch.c │ │ │ ├── lapacke_dlamch_work.c │ │ │ ├── lapacke_dlangb.c │ │ │ ├── lapacke_dlangb_work.c │ │ │ ├── lapacke_dlange.c │ │ │ ├── lapacke_dlange_work.c │ │ │ ├── lapacke_dlansy.c │ │ │ ├── lapacke_dlansy_work.c │ │ │ ├── lapacke_dlantr.c │ │ │ ├── lapacke_dlantr_work.c │ │ │ ├── lapacke_dlapmr.c │ │ │ ├── lapacke_dlapmr_work.c │ │ │ ├── lapacke_dlapmt.c │ │ │ ├── lapacke_dlapmt_work.c │ │ │ ├── lapacke_dlapy2.c │ │ │ ├── lapacke_dlapy2_work.c │ │ │ ├── lapacke_dlapy3.c │ │ │ ├── lapacke_dlapy3_work.c │ │ │ ├── lapacke_dlarfb.c │ │ │ ├── lapacke_dlarfb_work.c │ │ │ ├── lapacke_dlarfg.c │ │ │ ├── lapacke_dlarfg_work.c │ │ │ ├── lapacke_dlarft.c │ │ │ ├── lapacke_dlarft_work.c │ │ │ ├── lapacke_dlarfx.c │ │ │ ├── lapacke_dlarfx_work.c │ │ │ ├── lapacke_dlarnv.c │ │ │ ├── lapacke_dlarnv_work.c │ │ │ ├── lapacke_dlartgp.c │ │ │ ├── lapacke_dlartgp_work.c │ │ │ ├── lapacke_dlartgs.c │ │ │ ├── lapacke_dlartgs_work.c │ │ │ ├── lapacke_dlascl.c │ │ │ ├── lapacke_dlascl_work.c │ │ │ ├── lapacke_dlaset.c │ │ │ ├── lapacke_dlaset_work.c │ │ │ ├── lapacke_dlasrt.c │ │ │ ├── lapacke_dlasrt_work.c │ │ │ ├── lapacke_dlassq.c │ │ │ ├── lapacke_dlassq_work.c │ │ │ ├── lapacke_dlaswp.c │ │ │ ├── lapacke_dlaswp_work.c │ │ │ ├── lapacke_dlatms.c │ │ │ ├── lapacke_dlatms_work.c │ │ │ ├── lapacke_dlauum.c │ │ │ ├── lapacke_dlauum_work.c │ │ │ ├── lapacke_dopgtr.c │ │ │ ├── lapacke_dopgtr_work.c │ │ │ ├── lapacke_dopmtr.c │ │ │ ├── lapacke_dopmtr_work.c │ │ │ ├── lapacke_dorbdb.c │ │ │ ├── lapacke_dorbdb_work.c │ │ │ ├── lapacke_dorcsd.c │ │ │ ├── lapacke_dorcsd2by1.c │ │ │ ├── lapacke_dorcsd2by1_work.c │ │ │ ├── lapacke_dorcsd_work.c │ │ │ ├── lapacke_dorgbr.c │ │ │ ├── lapacke_dorgbr_work.c │ │ │ ├── lapacke_dorghr.c │ │ │ ├── lapacke_dorghr_work.c │ │ │ ├── lapacke_dorglq.c │ │ │ ├── lapacke_dorglq_work.c │ │ │ ├── lapacke_dorgql.c │ │ │ ├── lapacke_dorgql_work.c │ │ │ ├── lapacke_dorgqr.c │ │ │ ├── lapacke_dorgqr_work.c │ │ │ ├── lapacke_dorgrq.c │ │ │ ├── lapacke_dorgrq_work.c │ │ │ ├── lapacke_dorgtr.c │ │ │ ├── lapacke_dorgtr_work.c │ │ │ ├── lapacke_dorgtsqr_row.c │ │ │ ├── lapacke_dorgtsqr_row_work.c │ │ │ ├── lapacke_dorhr_col.c │ │ │ ├── lapacke_dorhr_col_work.c │ │ │ ├── lapacke_dormbr.c │ │ │ ├── lapacke_dormbr_work.c │ │ │ ├── lapacke_dormhr.c │ │ │ ├── lapacke_dormhr_work.c │ │ │ ├── lapacke_dormlq.c │ │ │ ├── lapacke_dormlq_work.c │ │ │ ├── lapacke_dormql.c │ │ │ ├── lapacke_dormql_work.c │ │ │ ├── lapacke_dormqr.c │ │ │ ├── lapacke_dormqr_work.c │ │ │ ├── lapacke_dormrq.c │ │ │ ├── lapacke_dormrq_work.c │ │ │ ├── lapacke_dormrz.c │ │ │ ├── lapacke_dormrz_work.c │ │ │ ├── lapacke_dormtr.c │ │ │ ├── lapacke_dormtr_work.c │ │ │ ├── lapacke_dpbcon.c │ │ │ ├── lapacke_dpbcon_work.c │ │ │ ├── lapacke_dpbequ.c │ │ │ ├── lapacke_dpbequ_work.c │ │ │ ├── lapacke_dpbrfs.c │ │ │ ├── lapacke_dpbrfs_work.c │ │ │ ├── lapacke_dpbstf.c │ │ │ ├── lapacke_dpbstf_work.c │ │ │ ├── lapacke_dpbsv.c │ │ │ ├── lapacke_dpbsv_work.c │ │ │ ├── lapacke_dpbsvx.c │ │ │ ├── lapacke_dpbsvx_work.c │ │ │ ├── lapacke_dpbtrf.c │ │ │ ├── lapacke_dpbtrf_work.c │ │ │ ├── lapacke_dpbtrs.c │ │ │ ├── lapacke_dpbtrs_work.c │ │ │ ├── lapacke_dpftrf.c │ │ │ ├── lapacke_dpftrf_work.c │ │ │ ├── lapacke_dpftri.c │ │ │ ├── lapacke_dpftri_work.c │ │ │ ├── lapacke_dpftrs.c │ │ │ ├── lapacke_dpftrs_work.c │ │ │ ├── lapacke_dpocon.c │ │ │ ├── lapacke_dpocon_work.c │ │ │ ├── lapacke_dpoequ.c │ │ │ ├── lapacke_dpoequ_work.c │ │ │ ├── lapacke_dpoequb.c │ │ │ ├── lapacke_dpoequb_work.c │ │ │ ├── lapacke_dporfs.c │ │ │ ├── lapacke_dporfs_work.c │ │ │ ├── lapacke_dporfsx.c │ │ │ ├── lapacke_dporfsx_work.c │ │ │ ├── lapacke_dposv.c │ │ │ ├── lapacke_dposv_work.c │ │ │ ├── lapacke_dposvx.c │ │ │ ├── lapacke_dposvx_work.c │ │ │ ├── lapacke_dposvxx.c │ │ │ ├── lapacke_dposvxx_work.c │ │ │ ├── lapacke_dpotrf.c │ │ │ ├── lapacke_dpotrf2.c │ │ │ ├── lapacke_dpotrf2_work.c │ │ │ ├── lapacke_dpotrf_work.c │ │ │ ├── lapacke_dpotri.c │ │ │ ├── lapacke_dpotri_work.c │ │ │ ├── lapacke_dpotrs.c │ │ │ ├── lapacke_dpotrs_work.c │ │ │ ├── lapacke_dppcon.c │ │ │ ├── lapacke_dppcon_work.c │ │ │ ├── lapacke_dppequ.c │ │ │ ├── lapacke_dppequ_work.c │ │ │ ├── lapacke_dpprfs.c │ │ │ ├── lapacke_dpprfs_work.c │ │ │ ├── lapacke_dppsv.c │ │ │ ├── lapacke_dppsv_work.c │ │ │ ├── lapacke_dppsvx.c │ │ │ ├── lapacke_dppsvx_work.c │ │ │ ├── lapacke_dpptrf.c │ │ │ ├── lapacke_dpptrf_work.c │ │ │ ├── lapacke_dpptri.c │ │ │ ├── lapacke_dpptri_work.c │ │ │ ├── lapacke_dpptrs.c │ │ │ ├── lapacke_dpptrs_work.c │ │ │ ├── lapacke_dpstrf.c │ │ │ ├── lapacke_dpstrf_work.c │ │ │ ├── lapacke_dptcon.c │ │ │ ├── lapacke_dptcon_work.c │ │ │ ├── lapacke_dpteqr.c │ │ │ ├── lapacke_dpteqr_work.c │ │ │ ├── lapacke_dptrfs.c │ │ │ ├── lapacke_dptrfs_work.c │ │ │ ├── lapacke_dptsv.c │ │ │ ├── lapacke_dptsv_work.c │ │ │ ├── lapacke_dptsvx.c │ │ │ ├── lapacke_dptsvx_work.c │ │ │ ├── lapacke_dpttrf.c │ │ │ ├── lapacke_dpttrf_work.c │ │ │ ├── lapacke_dpttrs.c │ │ │ ├── lapacke_dpttrs_work.c │ │ │ ├── lapacke_dsbev.c │ │ │ ├── lapacke_dsbev_2stage.c │ │ │ ├── lapacke_dsbev_2stage_work.c │ │ │ ├── lapacke_dsbev_work.c │ │ │ ├── lapacke_dsbevd.c │ │ │ ├── lapacke_dsbevd_2stage.c │ │ │ ├── lapacke_dsbevd_2stage_work.c │ │ │ ├── lapacke_dsbevd_work.c │ │ │ ├── lapacke_dsbevx.c │ │ │ ├── lapacke_dsbevx_2stage.c │ │ │ ├── lapacke_dsbevx_2stage_work.c │ │ │ ├── lapacke_dsbevx_work.c │ │ │ ├── lapacke_dsbgst.c │ │ │ ├── lapacke_dsbgst_work.c │ │ │ ├── lapacke_dsbgv.c │ │ │ ├── lapacke_dsbgv_work.c │ │ │ ├── lapacke_dsbgvd.c │ │ │ ├── lapacke_dsbgvd_work.c │ │ │ ├── lapacke_dsbgvx.c │ │ │ ├── lapacke_dsbgvx_work.c │ │ │ ├── lapacke_dsbtrd.c │ │ │ ├── lapacke_dsbtrd_work.c │ │ │ ├── lapacke_dsfrk.c │ │ │ ├── lapacke_dsfrk_work.c │ │ │ ├── lapacke_dsgesv.c │ │ │ ├── lapacke_dsgesv_work.c │ │ │ ├── lapacke_dspcon.c │ │ │ ├── lapacke_dspcon_work.c │ │ │ ├── lapacke_dspev.c │ │ │ ├── lapacke_dspev_work.c │ │ │ ├── lapacke_dspevd.c │ │ │ ├── lapacke_dspevd_work.c │ │ │ ├── lapacke_dspevx.c │ │ │ ├── lapacke_dspevx_work.c │ │ │ ├── lapacke_dspgst.c │ │ │ ├── lapacke_dspgst_work.c │ │ │ ├── lapacke_dspgv.c │ │ │ ├── lapacke_dspgv_work.c │ │ │ ├── lapacke_dspgvd.c │ │ │ ├── lapacke_dspgvd_work.c │ │ │ ├── lapacke_dspgvx.c │ │ │ ├── lapacke_dspgvx_work.c │ │ │ ├── lapacke_dsposv.c │ │ │ ├── lapacke_dsposv_work.c │ │ │ ├── lapacke_dsprfs.c │ │ │ ├── lapacke_dsprfs_work.c │ │ │ ├── lapacke_dspsv.c │ │ │ ├── lapacke_dspsv_work.c │ │ │ ├── lapacke_dspsvx.c │ │ │ ├── lapacke_dspsvx_work.c │ │ │ ├── lapacke_dsptrd.c │ │ │ ├── lapacke_dsptrd_work.c │ │ │ ├── lapacke_dsptrf.c │ │ │ ├── lapacke_dsptrf_work.c │ │ │ ├── lapacke_dsptri.c │ │ │ ├── lapacke_dsptri_work.c │ │ │ ├── lapacke_dsptrs.c │ │ │ ├── lapacke_dsptrs_work.c │ │ │ ├── lapacke_dstebz.c │ │ │ ├── lapacke_dstebz_work.c │ │ │ ├── lapacke_dstedc.c │ │ │ ├── lapacke_dstedc_work.c │ │ │ ├── lapacke_dstegr.c │ │ │ ├── lapacke_dstegr_work.c │ │ │ ├── lapacke_dstein.c │ │ │ ├── lapacke_dstein_work.c │ │ │ ├── lapacke_dstemr.c │ │ │ ├── lapacke_dstemr_work.c │ │ │ ├── lapacke_dsteqr.c │ │ │ ├── lapacke_dsteqr_work.c │ │ │ ├── lapacke_dsterf.c │ │ │ ├── lapacke_dsterf_work.c │ │ │ ├── lapacke_dstev.c │ │ │ ├── lapacke_dstev_work.c │ │ │ ├── lapacke_dstevd.c │ │ │ ├── lapacke_dstevd_work.c │ │ │ ├── lapacke_dstevr.c │ │ │ ├── lapacke_dstevr_work.c │ │ │ ├── lapacke_dstevx.c │ │ │ ├── lapacke_dstevx_work.c │ │ │ ├── lapacke_dsycon.c │ │ │ ├── lapacke_dsycon_3.c │ │ │ ├── lapacke_dsycon_3_work.c │ │ │ ├── lapacke_dsycon_work.c │ │ │ ├── lapacke_dsyconv.c │ │ │ ├── lapacke_dsyconv_work.c │ │ │ ├── lapacke_dsyequb.c │ │ │ ├── lapacke_dsyequb_work.c │ │ │ ├── lapacke_dsyev.c │ │ │ ├── lapacke_dsyev_2stage.c │ │ │ ├── lapacke_dsyev_2stage_work.c │ │ │ ├── lapacke_dsyev_work.c │ │ │ ├── lapacke_dsyevd.c │ │ │ ├── lapacke_dsyevd_2stage.c │ │ │ ├── lapacke_dsyevd_2stage_work.c │ │ │ ├── lapacke_dsyevd_work.c │ │ │ ├── lapacke_dsyevr.c │ │ │ ├── lapacke_dsyevr_2stage.c │ │ │ ├── lapacke_dsyevr_2stage_work.c │ │ │ ├── lapacke_dsyevr_work.c │ │ │ ├── lapacke_dsyevx.c │ │ │ ├── lapacke_dsyevx_2stage.c │ │ │ ├── lapacke_dsyevx_2stage_work.c │ │ │ ├── lapacke_dsyevx_work.c │ │ │ ├── lapacke_dsygst.c │ │ │ ├── lapacke_dsygst_work.c │ │ │ ├── lapacke_dsygv.c │ │ │ ├── lapacke_dsygv_2stage.c │ │ │ ├── lapacke_dsygv_2stage_work.c │ │ │ ├── lapacke_dsygv_work.c │ │ │ ├── lapacke_dsygvd.c │ │ │ ├── lapacke_dsygvd_work.c │ │ │ ├── lapacke_dsygvx.c │ │ │ ├── lapacke_dsygvx_work.c │ │ │ ├── lapacke_dsyrfs.c │ │ │ ├── lapacke_dsyrfs_work.c │ │ │ ├── lapacke_dsyrfsx.c │ │ │ ├── lapacke_dsyrfsx_work.c │ │ │ ├── lapacke_dsysv.c │ │ │ ├── lapacke_dsysv_aa.c │ │ │ ├── lapacke_dsysv_aa_2stage.c │ │ │ ├── lapacke_dsysv_aa_2stage_work.c │ │ │ ├── lapacke_dsysv_aa_work.c │ │ │ ├── lapacke_dsysv_rk.c │ │ │ ├── lapacke_dsysv_rk_work.c │ │ │ ├── lapacke_dsysv_rook.c │ │ │ ├── lapacke_dsysv_rook_work.c │ │ │ ├── lapacke_dsysv_work.c │ │ │ ├── lapacke_dsysvx.c │ │ │ ├── lapacke_dsysvx_work.c │ │ │ ├── lapacke_dsysvxx.c │ │ │ ├── lapacke_dsysvxx_work.c │ │ │ ├── lapacke_dsyswapr.c │ │ │ ├── lapacke_dsyswapr_work.c │ │ │ ├── lapacke_dsytrd.c │ │ │ ├── lapacke_dsytrd_work.c │ │ │ ├── lapacke_dsytrf.c │ │ │ ├── lapacke_dsytrf_aa.c │ │ │ ├── lapacke_dsytrf_aa_2stage.c │ │ │ ├── lapacke_dsytrf_aa_2stage_work.c │ │ │ ├── lapacke_dsytrf_aa_work.c │ │ │ ├── lapacke_dsytrf_rk.c │ │ │ ├── lapacke_dsytrf_rk_work.c │ │ │ ├── lapacke_dsytrf_rook.c │ │ │ ├── lapacke_dsytrf_rook_work.c │ │ │ ├── lapacke_dsytrf_work.c │ │ │ ├── lapacke_dsytri.c │ │ │ ├── lapacke_dsytri2.c │ │ │ ├── lapacke_dsytri2_work.c │ │ │ ├── lapacke_dsytri2x.c │ │ │ ├── lapacke_dsytri2x_work.c │ │ │ ├── lapacke_dsytri_3.c │ │ │ ├── lapacke_dsytri_3_work.c │ │ │ ├── lapacke_dsytri_work.c │ │ │ ├── lapacke_dsytrs.c │ │ │ ├── lapacke_dsytrs2.c │ │ │ ├── lapacke_dsytrs2_work.c │ │ │ ├── lapacke_dsytrs_3.c │ │ │ ├── lapacke_dsytrs_3_work.c │ │ │ ├── lapacke_dsytrs_aa.c │ │ │ ├── lapacke_dsytrs_aa_2stage.c │ │ │ ├── lapacke_dsytrs_aa_2stage_work.c │ │ │ ├── lapacke_dsytrs_aa_work.c │ │ │ ├── lapacke_dsytrs_rook.c │ │ │ ├── lapacke_dsytrs_rook_work.c │ │ │ ├── lapacke_dsytrs_work.c │ │ │ ├── lapacke_dtbcon.c │ │ │ ├── lapacke_dtbcon_work.c │ │ │ ├── lapacke_dtbrfs.c │ │ │ ├── lapacke_dtbrfs_work.c │ │ │ ├── lapacke_dtbtrs.c │ │ │ ├── lapacke_dtbtrs_work.c │ │ │ ├── lapacke_dtfsm.c │ │ │ ├── lapacke_dtfsm_work.c │ │ │ ├── lapacke_dtftri.c │ │ │ ├── lapacke_dtftri_work.c │ │ │ ├── lapacke_dtfttp.c │ │ │ ├── lapacke_dtfttp_work.c │ │ │ ├── lapacke_dtfttr.c │ │ │ ├── lapacke_dtfttr_work.c │ │ │ ├── lapacke_dtgevc.c │ │ │ ├── lapacke_dtgevc_work.c │ │ │ ├── lapacke_dtgexc.c │ │ │ ├── lapacke_dtgexc_work.c │ │ │ ├── lapacke_dtgsen.c │ │ │ ├── lapacke_dtgsen_work.c │ │ │ ├── lapacke_dtgsja.c │ │ │ ├── lapacke_dtgsja_work.c │ │ │ ├── lapacke_dtgsna.c │ │ │ ├── lapacke_dtgsna_work.c │ │ │ ├── lapacke_dtgsyl.c │ │ │ ├── lapacke_dtgsyl_work.c │ │ │ ├── lapacke_dtpcon.c │ │ │ ├── lapacke_dtpcon_work.c │ │ │ ├── lapacke_dtpmqrt.c │ │ │ ├── lapacke_dtpmqrt_work.c │ │ │ ├── lapacke_dtpqrt.c │ │ │ ├── lapacke_dtpqrt2.c │ │ │ ├── lapacke_dtpqrt2_work.c │ │ │ ├── lapacke_dtpqrt_work.c │ │ │ ├── lapacke_dtprfb.c │ │ │ ├── lapacke_dtprfb_work.c │ │ │ ├── lapacke_dtprfs.c │ │ │ ├── lapacke_dtprfs_work.c │ │ │ ├── lapacke_dtptri.c │ │ │ ├── lapacke_dtptri_work.c │ │ │ ├── lapacke_dtptrs.c │ │ │ ├── lapacke_dtptrs_work.c │ │ │ ├── lapacke_dtpttf.c │ │ │ ├── lapacke_dtpttf_work.c │ │ │ ├── lapacke_dtpttr.c │ │ │ ├── lapacke_dtpttr_work.c │ │ │ ├── lapacke_dtrcon.c │ │ │ ├── lapacke_dtrcon_work.c │ │ │ ├── lapacke_dtrevc.c │ │ │ ├── lapacke_dtrevc_work.c │ │ │ ├── lapacke_dtrexc.c │ │ │ ├── lapacke_dtrexc_work.c │ │ │ ├── lapacke_dtrrfs.c │ │ │ ├── lapacke_dtrrfs_work.c │ │ │ ├── lapacke_dtrsen.c │ │ │ ├── lapacke_dtrsen_work.c │ │ │ ├── lapacke_dtrsna.c │ │ │ ├── lapacke_dtrsna_work.c │ │ │ ├── lapacke_dtrsyl.c │ │ │ ├── lapacke_dtrsyl3.c │ │ │ ├── lapacke_dtrsyl3_work.c │ │ │ ├── lapacke_dtrsyl_work.c │ │ │ ├── lapacke_dtrtri.c │ │ │ ├── lapacke_dtrtri_work.c │ │ │ ├── lapacke_dtrtrs.c │ │ │ ├── lapacke_dtrtrs_work.c │ │ │ ├── lapacke_dtrttf.c │ │ │ ├── lapacke_dtrttf_work.c │ │ │ ├── lapacke_dtrttp.c │ │ │ ├── lapacke_dtrttp_work.c │ │ │ ├── lapacke_dtzrzf.c │ │ │ ├── lapacke_dtzrzf_work.c │ │ │ ├── lapacke_ilaver.c │ │ │ ├── lapacke_nancheck.c │ │ │ ├── lapacke_sbbcsd.c │ │ │ ├── lapacke_sbbcsd_work.c │ │ │ ├── lapacke_sbdsdc.c │ │ │ ├── lapacke_sbdsdc_work.c │ │ │ ├── lapacke_sbdsqr.c │ │ │ ├── lapacke_sbdsqr_work.c │ │ │ ├── lapacke_sbdsvdx.c │ │ │ ├── lapacke_sbdsvdx_work.c │ │ │ ├── lapacke_sdisna.c │ │ │ ├── lapacke_sdisna_work.c │ │ │ ├── lapacke_sgbbrd.c │ │ │ ├── lapacke_sgbbrd_work.c │ │ │ ├── lapacke_sgbcon.c │ │ │ ├── lapacke_sgbcon_work.c │ │ │ ├── lapacke_sgbequ.c │ │ │ ├── lapacke_sgbequ_work.c │ │ │ ├── lapacke_sgbequb.c │ │ │ ├── lapacke_sgbequb_work.c │ │ │ ├── lapacke_sgbrfs.c │ │ │ ├── lapacke_sgbrfs_work.c │ │ │ ├── lapacke_sgbrfsx.c │ │ │ ├── lapacke_sgbrfsx_work.c │ │ │ ├── lapacke_sgbsv.c │ │ │ ├── lapacke_sgbsv_work.c │ │ │ ├── lapacke_sgbsvx.c │ │ │ ├── lapacke_sgbsvx_work.c │ │ │ ├── lapacke_sgbsvxx.c │ │ │ ├── lapacke_sgbsvxx_work.c │ │ │ ├── lapacke_sgbtrf.c │ │ │ ├── lapacke_sgbtrf_work.c │ │ │ ├── lapacke_sgbtrs.c │ │ │ ├── lapacke_sgbtrs_work.c │ │ │ ├── lapacke_sgebak.c │ │ │ ├── lapacke_sgebak_work.c │ │ │ ├── lapacke_sgebal.c │ │ │ ├── lapacke_sgebal_work.c │ │ │ ├── lapacke_sgebrd.c │ │ │ ├── lapacke_sgebrd_work.c │ │ │ ├── lapacke_sgecon.c │ │ │ ├── lapacke_sgecon_work.c │ │ │ ├── lapacke_sgedmd.c │ │ │ ├── lapacke_sgedmd_work.c │ │ │ ├── lapacke_sgedmdq.c │ │ │ ├── lapacke_sgedmdq_work.c │ │ │ ├── lapacke_sgeequ.c │ │ │ ├── lapacke_sgeequ_work.c │ │ │ ├── lapacke_sgeequb.c │ │ │ ├── lapacke_sgeequb_work.c │ │ │ ├── lapacke_sgees.c │ │ │ ├── lapacke_sgees_work.c │ │ │ ├── lapacke_sgeesx.c │ │ │ ├── lapacke_sgeesx_work.c │ │ │ ├── lapacke_sgeev.c │ │ │ ├── lapacke_sgeev_work.c │ │ │ ├── lapacke_sgeevx.c │ │ │ ├── lapacke_sgeevx_work.c │ │ │ ├── lapacke_sgehrd.c │ │ │ ├── lapacke_sgehrd_work.c │ │ │ ├── lapacke_sgejsv.c │ │ │ ├── lapacke_sgejsv_work.c │ │ │ ├── lapacke_sgelq.c │ │ │ ├── lapacke_sgelq2.c │ │ │ ├── lapacke_sgelq2_work.c │ │ │ ├── lapacke_sgelq_work.c │ │ │ ├── lapacke_sgelqf.c │ │ │ ├── lapacke_sgelqf_work.c │ │ │ ├── lapacke_sgels.c │ │ │ ├── lapacke_sgels_work.c │ │ │ ├── lapacke_sgelsd.c │ │ │ ├── lapacke_sgelsd_work.c │ │ │ ├── lapacke_sgelss.c │ │ │ ├── lapacke_sgelss_work.c │ │ │ ├── lapacke_sgelsy.c │ │ │ ├── lapacke_sgelsy_work.c │ │ │ ├── lapacke_sgemlq.c │ │ │ ├── lapacke_sgemlq_work.c │ │ │ ├── lapacke_sgemqr.c │ │ │ ├── lapacke_sgemqr_work.c │ │ │ ├── lapacke_sgemqrt.c │ │ │ ├── lapacke_sgemqrt_work.c │ │ │ ├── lapacke_sgeqlf.c │ │ │ ├── lapacke_sgeqlf_work.c │ │ │ ├── lapacke_sgeqp3.c │ │ │ ├── lapacke_sgeqp3_work.c │ │ │ ├── lapacke_sgeqpf.c │ │ │ ├── lapacke_sgeqpf_work.c │ │ │ ├── lapacke_sgeqr.c │ │ │ ├── lapacke_sgeqr2.c │ │ │ ├── lapacke_sgeqr2_work.c │ │ │ ├── lapacke_sgeqr_work.c │ │ │ ├── lapacke_sgeqrf.c │ │ │ ├── lapacke_sgeqrf_work.c │ │ │ ├── lapacke_sgeqrfp.c │ │ │ ├── lapacke_sgeqrfp_work.c │ │ │ ├── lapacke_sgeqrt.c │ │ │ ├── lapacke_sgeqrt2.c │ │ │ ├── lapacke_sgeqrt2_work.c │ │ │ ├── lapacke_sgeqrt3.c │ │ │ ├── lapacke_sgeqrt3_work.c │ │ │ ├── lapacke_sgeqrt_work.c │ │ │ ├── lapacke_sgerfs.c │ │ │ ├── lapacke_sgerfs_work.c │ │ │ ├── lapacke_sgerfsx.c │ │ │ ├── lapacke_sgerfsx_work.c │ │ │ ├── lapacke_sgerqf.c │ │ │ ├── lapacke_sgerqf_work.c │ │ │ ├── lapacke_sgesdd.c │ │ │ ├── lapacke_sgesdd_work.c │ │ │ ├── lapacke_sgesv.c │ │ │ ├── lapacke_sgesv_work.c │ │ │ ├── lapacke_sgesvd.c │ │ │ ├── lapacke_sgesvd_work.c │ │ │ ├── lapacke_sgesvdq.c │ │ │ ├── lapacke_sgesvdq_work.c │ │ │ ├── lapacke_sgesvdx.c │ │ │ ├── lapacke_sgesvdx_work.c │ │ │ ├── lapacke_sgesvj.c │ │ │ ├── lapacke_sgesvj_work.c │ │ │ ├── lapacke_sgesvx.c │ │ │ ├── lapacke_sgesvx_work.c │ │ │ ├── lapacke_sgesvxx.c │ │ │ ├── lapacke_sgesvxx_work.c │ │ │ ├── lapacke_sgetf2.c │ │ │ ├── lapacke_sgetf2_work.c │ │ │ ├── lapacke_sgetrf.c │ │ │ ├── lapacke_sgetrf2.c │ │ │ ├── lapacke_sgetrf2_work.c │ │ │ ├── lapacke_sgetrf_work.c │ │ │ ├── lapacke_sgetri.c │ │ │ ├── lapacke_sgetri_work.c │ │ │ ├── lapacke_sgetrs.c │ │ │ ├── lapacke_sgetrs_work.c │ │ │ ├── lapacke_sgetsls.c │ │ │ ├── lapacke_sgetsls_work.c │ │ │ ├── lapacke_sgetsqrhrt.c │ │ │ ├── lapacke_sgetsqrhrt_work.c │ │ │ ├── lapacke_sggbak.c │ │ │ ├── lapacke_sggbak_work.c │ │ │ ├── lapacke_sggbal.c │ │ │ ├── lapacke_sggbal_work.c │ │ │ ├── lapacke_sgges.c │ │ │ ├── lapacke_sgges3.c │ │ │ ├── lapacke_sgges3_work.c │ │ │ ├── lapacke_sgges_work.c │ │ │ ├── lapacke_sggesx.c │ │ │ ├── lapacke_sggesx_work.c │ │ │ ├── lapacke_sggev.c │ │ │ ├── lapacke_sggev3.c │ │ │ ├── lapacke_sggev3_work.c │ │ │ ├── lapacke_sggev_work.c │ │ │ ├── lapacke_sggevx.c │ │ │ ├── lapacke_sggevx_work.c │ │ │ ├── lapacke_sggglm.c │ │ │ ├── lapacke_sggglm_work.c │ │ │ ├── lapacke_sgghd3.c │ │ │ ├── lapacke_sgghd3_work.c │ │ │ ├── lapacke_sgghrd.c │ │ │ ├── lapacke_sgghrd_work.c │ │ │ ├── lapacke_sgglse.c │ │ │ ├── lapacke_sgglse_work.c │ │ │ ├── lapacke_sggqrf.c │ │ │ ├── lapacke_sggqrf_work.c │ │ │ ├── lapacke_sggrqf.c │ │ │ ├── lapacke_sggrqf_work.c │ │ │ ├── lapacke_sggsvd.c │ │ │ ├── lapacke_sggsvd3.c │ │ │ ├── lapacke_sggsvd3_work.c │ │ │ ├── lapacke_sggsvd_work.c │ │ │ ├── lapacke_sggsvp.c │ │ │ ├── lapacke_sggsvp3.c │ │ │ ├── lapacke_sggsvp3_work.c │ │ │ ├── lapacke_sggsvp_work.c │ │ │ ├── lapacke_sgtcon.c │ │ │ ├── lapacke_sgtcon_work.c │ │ │ ├── lapacke_sgtrfs.c │ │ │ ├── lapacke_sgtrfs_work.c │ │ │ ├── lapacke_sgtsv.c │ │ │ ├── lapacke_sgtsv_work.c │ │ │ ├── lapacke_sgtsvx.c │ │ │ ├── lapacke_sgtsvx_work.c │ │ │ ├── lapacke_sgttrf.c │ │ │ ├── lapacke_sgttrf_work.c │ │ │ ├── lapacke_sgttrs.c │ │ │ ├── lapacke_sgttrs_work.c │ │ │ ├── lapacke_shgeqz.c │ │ │ ├── lapacke_shgeqz_work.c │ │ │ ├── lapacke_shsein.c │ │ │ ├── lapacke_shsein_work.c │ │ │ ├── lapacke_shseqr.c │ │ │ ├── lapacke_shseqr_work.c │ │ │ ├── lapacke_slacn2.c │ │ │ ├── lapacke_slacn2_work.c │ │ │ ├── lapacke_slacpy.c │ │ │ ├── lapacke_slacpy_work.c │ │ │ ├── lapacke_slag2d.c │ │ │ ├── lapacke_slag2d_work.c │ │ │ ├── lapacke_slagge.c │ │ │ ├── lapacke_slagge_work.c │ │ │ ├── lapacke_slagsy.c │ │ │ ├── lapacke_slagsy_work.c │ │ │ ├── lapacke_slamch.c │ │ │ ├── lapacke_slamch_work.c │ │ │ ├── lapacke_slangb.c │ │ │ ├── lapacke_slangb_work.c │ │ │ ├── lapacke_slange.c │ │ │ ├── lapacke_slange_work.c │ │ │ ├── lapacke_slansy.c │ │ │ ├── lapacke_slansy_work.c │ │ │ ├── lapacke_slantr.c │ │ │ ├── lapacke_slantr_work.c │ │ │ ├── lapacke_slapmr.c │ │ │ ├── lapacke_slapmr_work.c │ │ │ ├── lapacke_slapmt.c │ │ │ ├── lapacke_slapmt_work.c │ │ │ ├── lapacke_slapy2.c │ │ │ ├── lapacke_slapy2_work.c │ │ │ ├── lapacke_slapy3.c │ │ │ ├── lapacke_slapy3_work.c │ │ │ ├── lapacke_slarfb.c │ │ │ ├── lapacke_slarfb_work.c │ │ │ ├── lapacke_slarfg.c │ │ │ ├── lapacke_slarfg_work.c │ │ │ ├── lapacke_slarft.c │ │ │ ├── lapacke_slarft_work.c │ │ │ ├── lapacke_slarfx.c │ │ │ ├── lapacke_slarfx_work.c │ │ │ ├── lapacke_slarnv.c │ │ │ ├── lapacke_slarnv_work.c │ │ │ ├── lapacke_slartgp.c │ │ │ ├── lapacke_slartgp_work.c │ │ │ ├── lapacke_slartgs.c │ │ │ ├── lapacke_slartgs_work.c │ │ │ ├── lapacke_slascl.c │ │ │ ├── lapacke_slascl_work.c │ │ │ ├── lapacke_slaset.c │ │ │ ├── lapacke_slaset_work.c │ │ │ ├── lapacke_slasrt.c │ │ │ ├── lapacke_slasrt_work.c │ │ │ ├── lapacke_slassq.c │ │ │ ├── lapacke_slassq_work.c │ │ │ ├── lapacke_slaswp.c │ │ │ ├── lapacke_slaswp_work.c │ │ │ ├── lapacke_slatms.c │ │ │ ├── lapacke_slatms_work.c │ │ │ ├── lapacke_slauum.c │ │ │ ├── lapacke_slauum_work.c │ │ │ ├── lapacke_sopgtr.c │ │ │ ├── lapacke_sopgtr_work.c │ │ │ ├── lapacke_sopmtr.c │ │ │ ├── lapacke_sopmtr_work.c │ │ │ ├── lapacke_sorbdb.c │ │ │ ├── lapacke_sorbdb_work.c │ │ │ ├── lapacke_sorcsd.c │ │ │ ├── lapacke_sorcsd2by1.c │ │ │ ├── lapacke_sorcsd2by1_work.c │ │ │ ├── lapacke_sorcsd_work.c │ │ │ ├── lapacke_sorgbr.c │ │ │ ├── lapacke_sorgbr_work.c │ │ │ ├── lapacke_sorghr.c │ │ │ ├── lapacke_sorghr_work.c │ │ │ ├── lapacke_sorglq.c │ │ │ ├── lapacke_sorglq_work.c │ │ │ ├── lapacke_sorgql.c │ │ │ ├── lapacke_sorgql_work.c │ │ │ ├── lapacke_sorgqr.c │ │ │ ├── lapacke_sorgqr_work.c │ │ │ ├── lapacke_sorgrq.c │ │ │ ├── lapacke_sorgrq_work.c │ │ │ ├── lapacke_sorgtr.c │ │ │ ├── lapacke_sorgtr_work.c │ │ │ ├── lapacke_sorgtsqr_row.c │ │ │ ├── lapacke_sorgtsqr_row_work.c │ │ │ ├── lapacke_sorhr_col.c │ │ │ ├── lapacke_sorhr_col_work.c │ │ │ ├── lapacke_sormbr.c │ │ │ ├── lapacke_sormbr_work.c │ │ │ ├── lapacke_sormhr.c │ │ │ ├── lapacke_sormhr_work.c │ │ │ ├── lapacke_sormlq.c │ │ │ ├── lapacke_sormlq_work.c │ │ │ ├── lapacke_sormql.c │ │ │ ├── lapacke_sormql_work.c │ │ │ ├── lapacke_sormqr.c │ │ │ ├── lapacke_sormqr_work.c │ │ │ ├── lapacke_sormrq.c │ │ │ ├── lapacke_sormrq_work.c │ │ │ ├── lapacke_sormrz.c │ │ │ ├── lapacke_sormrz_work.c │ │ │ ├── lapacke_sormtr.c │ │ │ ├── lapacke_sormtr_work.c │ │ │ ├── lapacke_spbcon.c │ │ │ ├── lapacke_spbcon_work.c │ │ │ ├── lapacke_spbequ.c │ │ │ ├── lapacke_spbequ_work.c │ │ │ ├── lapacke_spbrfs.c │ │ │ ├── lapacke_spbrfs_work.c │ │ │ ├── lapacke_spbstf.c │ │ │ ├── lapacke_spbstf_work.c │ │ │ ├── lapacke_spbsv.c │ │ │ ├── lapacke_spbsv_work.c │ │ │ ├── lapacke_spbsvx.c │ │ │ ├── lapacke_spbsvx_work.c │ │ │ ├── lapacke_spbtrf.c │ │ │ ├── lapacke_spbtrf_work.c │ │ │ ├── lapacke_spbtrs.c │ │ │ ├── lapacke_spbtrs_work.c │ │ │ ├── lapacke_spftrf.c │ │ │ ├── lapacke_spftrf_work.c │ │ │ ├── lapacke_spftri.c │ │ │ ├── lapacke_spftri_work.c │ │ │ ├── lapacke_spftrs.c │ │ │ ├── lapacke_spftrs_work.c │ │ │ ├── lapacke_spocon.c │ │ │ ├── lapacke_spocon_work.c │ │ │ ├── lapacke_spoequ.c │ │ │ ├── lapacke_spoequ_work.c │ │ │ ├── lapacke_spoequb.c │ │ │ ├── lapacke_spoequb_work.c │ │ │ ├── lapacke_sporfs.c │ │ │ ├── lapacke_sporfs_work.c │ │ │ ├── lapacke_sporfsx.c │ │ │ ├── lapacke_sporfsx_work.c │ │ │ ├── lapacke_sposv.c │ │ │ ├── lapacke_sposv_work.c │ │ │ ├── lapacke_sposvx.c │ │ │ ├── lapacke_sposvx_work.c │ │ │ ├── lapacke_sposvxx.c │ │ │ ├── lapacke_sposvxx_work.c │ │ │ ├── lapacke_spotrf.c │ │ │ ├── lapacke_spotrf2.c │ │ │ ├── lapacke_spotrf2_work.c │ │ │ ├── lapacke_spotrf_work.c │ │ │ ├── lapacke_spotri.c │ │ │ ├── lapacke_spotri_work.c │ │ │ ├── lapacke_spotrs.c │ │ │ ├── lapacke_spotrs_work.c │ │ │ ├── lapacke_sppcon.c │ │ │ ├── lapacke_sppcon_work.c │ │ │ ├── lapacke_sppequ.c │ │ │ ├── lapacke_sppequ_work.c │ │ │ ├── lapacke_spprfs.c │ │ │ ├── lapacke_spprfs_work.c │ │ │ ├── lapacke_sppsv.c │ │ │ ├── lapacke_sppsv_work.c │ │ │ ├── lapacke_sppsvx.c │ │ │ ├── lapacke_sppsvx_work.c │ │ │ ├── lapacke_spptrf.c │ │ │ ├── lapacke_spptrf_work.c │ │ │ ├── lapacke_spptri.c │ │ │ ├── lapacke_spptri_work.c │ │ │ ├── lapacke_spptrs.c │ │ │ ├── lapacke_spptrs_work.c │ │ │ ├── lapacke_spstrf.c │ │ │ ├── lapacke_spstrf_work.c │ │ │ ├── lapacke_sptcon.c │ │ │ ├── lapacke_sptcon_work.c │ │ │ ├── lapacke_spteqr.c │ │ │ ├── lapacke_spteqr_work.c │ │ │ ├── lapacke_sptrfs.c │ │ │ ├── lapacke_sptrfs_work.c │ │ │ ├── lapacke_sptsv.c │ │ │ ├── lapacke_sptsv_work.c │ │ │ ├── lapacke_sptsvx.c │ │ │ ├── lapacke_sptsvx_work.c │ │ │ ├── lapacke_spttrf.c │ │ │ ├── lapacke_spttrf_work.c │ │ │ ├── lapacke_spttrs.c │ │ │ ├── lapacke_spttrs_work.c │ │ │ ├── lapacke_ssbev.c │ │ │ ├── lapacke_ssbev_2stage.c │ │ │ ├── lapacke_ssbev_2stage_work.c │ │ │ ├── lapacke_ssbev_work.c │ │ │ ├── lapacke_ssbevd.c │ │ │ ├── lapacke_ssbevd_2stage.c │ │ │ ├── lapacke_ssbevd_2stage_work.c │ │ │ ├── lapacke_ssbevd_work.c │ │ │ ├── lapacke_ssbevx.c │ │ │ ├── lapacke_ssbevx_2stage.c │ │ │ ├── lapacke_ssbevx_2stage_work.c │ │ │ ├── lapacke_ssbevx_work.c │ │ │ ├── lapacke_ssbgst.c │ │ │ ├── lapacke_ssbgst_work.c │ │ │ ├── lapacke_ssbgv.c │ │ │ ├── lapacke_ssbgv_work.c │ │ │ ├── lapacke_ssbgvd.c │ │ │ ├── lapacke_ssbgvd_work.c │ │ │ ├── lapacke_ssbgvx.c │ │ │ ├── lapacke_ssbgvx_work.c │ │ │ ├── lapacke_ssbtrd.c │ │ │ ├── lapacke_ssbtrd_work.c │ │ │ ├── lapacke_ssfrk.c │ │ │ ├── lapacke_ssfrk_work.c │ │ │ ├── lapacke_sspcon.c │ │ │ ├── lapacke_sspcon_work.c │ │ │ ├── lapacke_sspev.c │ │ │ ├── lapacke_sspev_work.c │ │ │ ├── lapacke_sspevd.c │ │ │ ├── lapacke_sspevd_work.c │ │ │ ├── lapacke_sspevx.c │ │ │ ├── lapacke_sspevx_work.c │ │ │ ├── lapacke_sspgst.c │ │ │ ├── lapacke_sspgst_work.c │ │ │ ├── lapacke_sspgv.c │ │ │ ├── lapacke_sspgv_work.c │ │ │ ├── lapacke_sspgvd.c │ │ │ ├── lapacke_sspgvd_work.c │ │ │ ├── lapacke_sspgvx.c │ │ │ ├── lapacke_sspgvx_work.c │ │ │ ├── lapacke_ssprfs.c │ │ │ ├── lapacke_ssprfs_work.c │ │ │ ├── lapacke_sspsv.c │ │ │ ├── lapacke_sspsv_work.c │ │ │ ├── lapacke_sspsvx.c │ │ │ ├── lapacke_sspsvx_work.c │ │ │ ├── lapacke_ssptrd.c │ │ │ ├── lapacke_ssptrd_work.c │ │ │ ├── lapacke_ssptrf.c │ │ │ ├── lapacke_ssptrf_work.c │ │ │ ├── lapacke_ssptri.c │ │ │ ├── lapacke_ssptri_work.c │ │ │ ├── lapacke_ssptrs.c │ │ │ ├── lapacke_ssptrs_work.c │ │ │ ├── lapacke_sstebz.c │ │ │ ├── lapacke_sstebz_work.c │ │ │ ├── lapacke_sstedc.c │ │ │ ├── lapacke_sstedc_work.c │ │ │ ├── lapacke_sstegr.c │ │ │ ├── lapacke_sstegr_work.c │ │ │ ├── lapacke_sstein.c │ │ │ ├── lapacke_sstein_work.c │ │ │ ├── lapacke_sstemr.c │ │ │ ├── lapacke_sstemr_work.c │ │ │ ├── lapacke_ssteqr.c │ │ │ ├── lapacke_ssteqr_work.c │ │ │ ├── lapacke_ssterf.c │ │ │ ├── lapacke_ssterf_work.c │ │ │ ├── lapacke_sstev.c │ │ │ ├── lapacke_sstev_work.c │ │ │ ├── lapacke_sstevd.c │ │ │ ├── lapacke_sstevd_work.c │ │ │ ├── lapacke_sstevr.c │ │ │ ├── lapacke_sstevr_work.c │ │ │ ├── lapacke_sstevx.c │ │ │ ├── lapacke_sstevx_work.c │ │ │ ├── lapacke_ssycon.c │ │ │ ├── lapacke_ssycon_3.c │ │ │ ├── lapacke_ssycon_3_work.c │ │ │ ├── lapacke_ssycon_work.c │ │ │ ├── lapacke_ssyconv.c │ │ │ ├── lapacke_ssyconv_work.c │ │ │ ├── lapacke_ssyequb.c │ │ │ ├── lapacke_ssyequb_work.c │ │ │ ├── lapacke_ssyev.c │ │ │ ├── lapacke_ssyev_2stage.c │ │ │ ├── lapacke_ssyev_2stage_work.c │ │ │ ├── lapacke_ssyev_work.c │ │ │ ├── lapacke_ssyevd.c │ │ │ ├── lapacke_ssyevd_2stage.c │ │ │ ├── lapacke_ssyevd_2stage_work.c │ │ │ ├── lapacke_ssyevd_work.c │ │ │ ├── lapacke_ssyevr.c │ │ │ ├── lapacke_ssyevr_2stage.c │ │ │ ├── lapacke_ssyevr_2stage_work.c │ │ │ ├── lapacke_ssyevr_work.c │ │ │ ├── lapacke_ssyevx.c │ │ │ ├── lapacke_ssyevx_2stage.c │ │ │ ├── lapacke_ssyevx_2stage_work.c │ │ │ ├── lapacke_ssyevx_work.c │ │ │ ├── lapacke_ssygst.c │ │ │ ├── lapacke_ssygst_work.c │ │ │ ├── lapacke_ssygv.c │ │ │ ├── lapacke_ssygv_2stage.c │ │ │ ├── lapacke_ssygv_2stage_work.c │ │ │ ├── lapacke_ssygv_work.c │ │ │ ├── lapacke_ssygvd.c │ │ │ ├── lapacke_ssygvd_work.c │ │ │ ├── lapacke_ssygvx.c │ │ │ ├── lapacke_ssygvx_work.c │ │ │ ├── lapacke_ssyrfs.c │ │ │ ├── lapacke_ssyrfs_work.c │ │ │ ├── lapacke_ssyrfsx.c │ │ │ ├── lapacke_ssyrfsx_work.c │ │ │ ├── lapacke_ssysv.c │ │ │ ├── lapacke_ssysv_aa.c │ │ │ ├── lapacke_ssysv_aa_2stage.c │ │ │ ├── lapacke_ssysv_aa_2stage_work.c │ │ │ ├── lapacke_ssysv_aa_work.c │ │ │ ├── lapacke_ssysv_rk.c │ │ │ ├── lapacke_ssysv_rk_work.c │ │ │ ├── lapacke_ssysv_rook.c │ │ │ ├── lapacke_ssysv_rook_work.c │ │ │ ├── lapacke_ssysv_work.c │ │ │ ├── lapacke_ssysvx.c │ │ │ ├── lapacke_ssysvx_work.c │ │ │ ├── lapacke_ssysvxx.c │ │ │ ├── lapacke_ssysvxx_work.c │ │ │ ├── lapacke_ssyswapr.c │ │ │ ├── lapacke_ssyswapr_work.c │ │ │ ├── lapacke_ssytrd.c │ │ │ ├── lapacke_ssytrd_work.c │ │ │ ├── lapacke_ssytrf.c │ │ │ ├── lapacke_ssytrf_aa.c │ │ │ ├── lapacke_ssytrf_aa_2stage.c │ │ │ ├── lapacke_ssytrf_aa_2stage_work.c │ │ │ ├── lapacke_ssytrf_aa_work.c │ │ │ ├── lapacke_ssytrf_rk.c │ │ │ ├── lapacke_ssytrf_rk_work.c │ │ │ ├── lapacke_ssytrf_rook.c │ │ │ ├── lapacke_ssytrf_rook_work.c │ │ │ ├── lapacke_ssytrf_work.c │ │ │ ├── lapacke_ssytri.c │ │ │ ├── lapacke_ssytri2.c │ │ │ ├── lapacke_ssytri2_work.c │ │ │ ├── lapacke_ssytri2x.c │ │ │ ├── lapacke_ssytri2x_work.c │ │ │ ├── lapacke_ssytri_3.c │ │ │ ├── lapacke_ssytri_3_work.c │ │ │ ├── lapacke_ssytri_work.c │ │ │ ├── lapacke_ssytrs.c │ │ │ ├── lapacke_ssytrs2.c │ │ │ ├── lapacke_ssytrs2_work.c │ │ │ ├── lapacke_ssytrs_3.c │ │ │ ├── lapacke_ssytrs_3_work.c │ │ │ ├── lapacke_ssytrs_aa.c │ │ │ ├── lapacke_ssytrs_aa_2stage.c │ │ │ ├── lapacke_ssytrs_aa_2stage_work.c │ │ │ ├── lapacke_ssytrs_aa_work.c │ │ │ ├── lapacke_ssytrs_rook.c │ │ │ ├── lapacke_ssytrs_rook_work.c │ │ │ ├── lapacke_ssytrs_work.c │ │ │ ├── lapacke_stbcon.c │ │ │ ├── lapacke_stbcon_work.c │ │ │ ├── lapacke_stbrfs.c │ │ │ ├── lapacke_stbrfs_work.c │ │ │ ├── lapacke_stbtrs.c │ │ │ ├── lapacke_stbtrs_work.c │ │ │ ├── lapacke_stfsm.c │ │ │ ├── lapacke_stfsm_work.c │ │ │ ├── lapacke_stftri.c │ │ │ ├── lapacke_stftri_work.c │ │ │ ├── lapacke_stfttp.c │ │ │ ├── lapacke_stfttp_work.c │ │ │ ├── lapacke_stfttr.c │ │ │ ├── lapacke_stfttr_work.c │ │ │ ├── lapacke_stgevc.c │ │ │ ├── lapacke_stgevc_work.c │ │ │ ├── lapacke_stgexc.c │ │ │ ├── lapacke_stgexc_work.c │ │ │ ├── lapacke_stgsen.c │ │ │ ├── lapacke_stgsen_work.c │ │ │ ├── lapacke_stgsja.c │ │ │ ├── lapacke_stgsja_work.c │ │ │ ├── lapacke_stgsna.c │ │ │ ├── lapacke_stgsna_work.c │ │ │ ├── lapacke_stgsyl.c │ │ │ ├── lapacke_stgsyl_work.c │ │ │ ├── lapacke_stpcon.c │ │ │ ├── lapacke_stpcon_work.c │ │ │ ├── lapacke_stpmqrt.c │ │ │ ├── lapacke_stpmqrt_work.c │ │ │ ├── lapacke_stpqrt.c │ │ │ ├── lapacke_stpqrt2.c │ │ │ ├── lapacke_stpqrt2_work.c │ │ │ ├── lapacke_stpqrt_work.c │ │ │ ├── lapacke_stprfb.c │ │ │ ├── lapacke_stprfb_work.c │ │ │ ├── lapacke_stprfs.c │ │ │ ├── lapacke_stprfs_work.c │ │ │ ├── lapacke_stptri.c │ │ │ ├── lapacke_stptri_work.c │ │ │ ├── lapacke_stptrs.c │ │ │ ├── lapacke_stptrs_work.c │ │ │ ├── lapacke_stpttf.c │ │ │ ├── lapacke_stpttf_work.c │ │ │ ├── lapacke_stpttr.c │ │ │ ├── lapacke_stpttr_work.c │ │ │ ├── lapacke_strcon.c │ │ │ ├── lapacke_strcon_work.c │ │ │ ├── lapacke_strevc.c │ │ │ ├── lapacke_strevc_work.c │ │ │ ├── lapacke_strexc.c │ │ │ ├── lapacke_strexc_work.c │ │ │ ├── lapacke_strrfs.c │ │ │ ├── lapacke_strrfs_work.c │ │ │ ├── lapacke_strsen.c │ │ │ ├── lapacke_strsen_work.c │ │ │ ├── lapacke_strsna.c │ │ │ ├── lapacke_strsna_work.c │ │ │ ├── lapacke_strsyl.c │ │ │ ├── lapacke_strsyl3.c │ │ │ ├── lapacke_strsyl3_work.c │ │ │ ├── lapacke_strsyl_work.c │ │ │ ├── lapacke_strtri.c │ │ │ ├── lapacke_strtri_work.c │ │ │ ├── lapacke_strtrs.c │ │ │ ├── lapacke_strtrs_work.c │ │ │ ├── lapacke_strttf.c │ │ │ ├── lapacke_strttf_work.c │ │ │ ├── lapacke_strttp.c │ │ │ ├── lapacke_strttp_work.c │ │ │ ├── lapacke_stzrzf.c │ │ │ ├── lapacke_stzrzf_work.c │ │ │ ├── lapacke_zbbcsd.c │ │ │ ├── lapacke_zbbcsd_work.c │ │ │ ├── lapacke_zbdsqr.c │ │ │ ├── lapacke_zbdsqr_work.c │ │ │ ├── lapacke_zcgesv.c │ │ │ ├── lapacke_zcgesv_work.c │ │ │ ├── lapacke_zcposv.c │ │ │ ├── lapacke_zcposv_work.c │ │ │ ├── lapacke_zgbbrd.c │ │ │ ├── lapacke_zgbbrd_work.c │ │ │ ├── lapacke_zgbcon.c │ │ │ ├── lapacke_zgbcon_work.c │ │ │ ├── lapacke_zgbequ.c │ │ │ ├── lapacke_zgbequ_work.c │ │ │ ├── lapacke_zgbequb.c │ │ │ ├── lapacke_zgbequb_work.c │ │ │ ├── lapacke_zgbrfs.c │ │ │ ├── lapacke_zgbrfs_work.c │ │ │ ├── lapacke_zgbrfsx.c │ │ │ ├── lapacke_zgbrfsx_work.c │ │ │ ├── lapacke_zgbsv.c │ │ │ ├── lapacke_zgbsv_work.c │ │ │ ├── lapacke_zgbsvx.c │ │ │ ├── lapacke_zgbsvx_work.c │ │ │ ├── lapacke_zgbsvxx.c │ │ │ ├── lapacke_zgbsvxx_work.c │ │ │ ├── lapacke_zgbtrf.c │ │ │ ├── lapacke_zgbtrf_work.c │ │ │ ├── lapacke_zgbtrs.c │ │ │ ├── lapacke_zgbtrs_work.c │ │ │ ├── lapacke_zgebak.c │ │ │ ├── lapacke_zgebak_work.c │ │ │ ├── lapacke_zgebal.c │ │ │ ├── lapacke_zgebal_work.c │ │ │ ├── lapacke_zgebrd.c │ │ │ ├── lapacke_zgebrd_work.c │ │ │ ├── lapacke_zgecon.c │ │ │ ├── lapacke_zgecon_work.c │ │ │ ├── lapacke_zgedmd.c │ │ │ ├── lapacke_zgedmd_work.c │ │ │ ├── lapacke_zgedmdq.c │ │ │ ├── lapacke_zgedmdq_work.c │ │ │ ├── lapacke_zgeequ.c │ │ │ ├── lapacke_zgeequ_work.c │ │ │ ├── lapacke_zgeequb.c │ │ │ ├── lapacke_zgeequb_work.c │ │ │ ├── lapacke_zgees.c │ │ │ ├── lapacke_zgees_work.c │ │ │ ├── lapacke_zgeesx.c │ │ │ ├── lapacke_zgeesx_work.c │ │ │ ├── lapacke_zgeev.c │ │ │ ├── lapacke_zgeev_work.c │ │ │ ├── lapacke_zgeevx.c │ │ │ ├── lapacke_zgeevx_work.c │ │ │ ├── lapacke_zgehrd.c │ │ │ ├── lapacke_zgehrd_work.c │ │ │ ├── lapacke_zgejsv.c │ │ │ ├── lapacke_zgejsv_work.c │ │ │ ├── lapacke_zgelq.c │ │ │ ├── lapacke_zgelq2.c │ │ │ ├── lapacke_zgelq2_work.c │ │ │ ├── lapacke_zgelq_work.c │ │ │ ├── lapacke_zgelqf.c │ │ │ ├── lapacke_zgelqf_work.c │ │ │ ├── lapacke_zgels.c │ │ │ ├── lapacke_zgels_work.c │ │ │ ├── lapacke_zgelsd.c │ │ │ ├── lapacke_zgelsd_work.c │ │ │ ├── lapacke_zgelss.c │ │ │ ├── lapacke_zgelss_work.c │ │ │ ├── lapacke_zgelsy.c │ │ │ ├── lapacke_zgelsy_work.c │ │ │ ├── lapacke_zgemlq.c │ │ │ ├── lapacke_zgemlq_work.c │ │ │ ├── lapacke_zgemqr.c │ │ │ ├── lapacke_zgemqr_work.c │ │ │ ├── lapacke_zgemqrt.c │ │ │ ├── lapacke_zgemqrt_work.c │ │ │ ├── lapacke_zgeqlf.c │ │ │ ├── lapacke_zgeqlf_work.c │ │ │ ├── lapacke_zgeqp3.c │ │ │ ├── lapacke_zgeqp3_work.c │ │ │ ├── lapacke_zgeqpf.c │ │ │ ├── lapacke_zgeqpf_work.c │ │ │ ├── lapacke_zgeqr.c │ │ │ ├── lapacke_zgeqr2.c │ │ │ ├── lapacke_zgeqr2_work.c │ │ │ ├── lapacke_zgeqr_work.c │ │ │ ├── lapacke_zgeqrf.c │ │ │ ├── lapacke_zgeqrf_work.c │ │ │ ├── lapacke_zgeqrfp.c │ │ │ ├── lapacke_zgeqrfp_work.c │ │ │ ├── lapacke_zgeqrt.c │ │ │ ├── lapacke_zgeqrt2.c │ │ │ ├── lapacke_zgeqrt2_work.c │ │ │ ├── lapacke_zgeqrt3.c │ │ │ ├── lapacke_zgeqrt3_work.c │ │ │ ├── lapacke_zgeqrt_work.c │ │ │ ├── lapacke_zgerfs.c │ │ │ ├── lapacke_zgerfs_work.c │ │ │ ├── lapacke_zgerfsx.c │ │ │ ├── lapacke_zgerfsx_work.c │ │ │ ├── lapacke_zgerqf.c │ │ │ ├── lapacke_zgerqf_work.c │ │ │ ├── lapacke_zgesdd.c │ │ │ ├── lapacke_zgesdd_work.c │ │ │ ├── lapacke_zgesv.c │ │ │ ├── lapacke_zgesv_work.c │ │ │ ├── lapacke_zgesvd.c │ │ │ ├── lapacke_zgesvd_work.c │ │ │ ├── lapacke_zgesvdq.c │ │ │ ├── lapacke_zgesvdq_work.c │ │ │ ├── lapacke_zgesvdx.c │ │ │ ├── lapacke_zgesvdx_work.c │ │ │ ├── lapacke_zgesvj.c │ │ │ ├── lapacke_zgesvj_work.c │ │ │ ├── lapacke_zgesvx.c │ │ │ ├── lapacke_zgesvx_work.c │ │ │ ├── lapacke_zgesvxx.c │ │ │ ├── lapacke_zgesvxx_work.c │ │ │ ├── lapacke_zgetf2.c │ │ │ ├── lapacke_zgetf2_work.c │ │ │ ├── lapacke_zgetrf.c │ │ │ ├── lapacke_zgetrf2.c │ │ │ ├── lapacke_zgetrf2_work.c │ │ │ ├── lapacke_zgetrf_work.c │ │ │ ├── lapacke_zgetri.c │ │ │ ├── lapacke_zgetri_work.c │ │ │ ├── lapacke_zgetrs.c │ │ │ ├── lapacke_zgetrs_work.c │ │ │ ├── lapacke_zgetsls.c │ │ │ ├── lapacke_zgetsls_work.c │ │ │ ├── lapacke_zgetsqrhrt.c │ │ │ ├── lapacke_zgetsqrhrt_work.c │ │ │ ├── lapacke_zggbak.c │ │ │ ├── lapacke_zggbak_work.c │ │ │ ├── lapacke_zggbal.c │ │ │ ├── lapacke_zggbal_work.c │ │ │ ├── lapacke_zgges.c │ │ │ ├── lapacke_zgges3.c │ │ │ ├── lapacke_zgges3_work.c │ │ │ ├── lapacke_zgges_work.c │ │ │ ├── lapacke_zggesx.c │ │ │ ├── lapacke_zggesx_work.c │ │ │ ├── lapacke_zggev.c │ │ │ ├── lapacke_zggev3.c │ │ │ ├── lapacke_zggev3_work.c │ │ │ ├── lapacke_zggev_work.c │ │ │ ├── lapacke_zggevx.c │ │ │ ├── lapacke_zggevx_work.c │ │ │ ├── lapacke_zggglm.c │ │ │ ├── lapacke_zggglm_work.c │ │ │ ├── lapacke_zgghd3.c │ │ │ ├── lapacke_zgghd3_work.c │ │ │ ├── lapacke_zgghrd.c │ │ │ ├── lapacke_zgghrd_work.c │ │ │ ├── lapacke_zgglse.c │ │ │ ├── lapacke_zgglse_work.c │ │ │ ├── lapacke_zggqrf.c │ │ │ ├── lapacke_zggqrf_work.c │ │ │ ├── lapacke_zggrqf.c │ │ │ ├── lapacke_zggrqf_work.c │ │ │ ├── lapacke_zggsvd.c │ │ │ ├── lapacke_zggsvd3.c │ │ │ ├── lapacke_zggsvd3_work.c │ │ │ ├── lapacke_zggsvd_work.c │ │ │ ├── lapacke_zggsvp.c │ │ │ ├── lapacke_zggsvp3.c │ │ │ ├── lapacke_zggsvp3_work.c │ │ │ ├── lapacke_zggsvp_work.c │ │ │ ├── lapacke_zgtcon.c │ │ │ ├── lapacke_zgtcon_work.c │ │ │ ├── lapacke_zgtrfs.c │ │ │ ├── lapacke_zgtrfs_work.c │ │ │ ├── lapacke_zgtsv.c │ │ │ ├── lapacke_zgtsv_work.c │ │ │ ├── lapacke_zgtsvx.c │ │ │ ├── lapacke_zgtsvx_work.c │ │ │ ├── lapacke_zgttrf.c │ │ │ ├── lapacke_zgttrf_work.c │ │ │ ├── lapacke_zgttrs.c │ │ │ ├── lapacke_zgttrs_work.c │ │ │ ├── lapacke_zhbev.c │ │ │ ├── lapacke_zhbev_2stage.c │ │ │ ├── lapacke_zhbev_2stage_work.c │ │ │ ├── lapacke_zhbev_work.c │ │ │ ├── lapacke_zhbevd.c │ │ │ ├── lapacke_zhbevd_2stage.c │ │ │ ├── lapacke_zhbevd_2stage_work.c │ │ │ ├── lapacke_zhbevd_work.c │ │ │ ├── lapacke_zhbevx.c │ │ │ ├── lapacke_zhbevx_2stage.c │ │ │ ├── lapacke_zhbevx_2stage_work.c │ │ │ ├── lapacke_zhbevx_work.c │ │ │ ├── lapacke_zhbgst.c │ │ │ ├── lapacke_zhbgst_work.c │ │ │ ├── lapacke_zhbgv.c │ │ │ ├── lapacke_zhbgv_work.c │ │ │ ├── lapacke_zhbgvd.c │ │ │ ├── lapacke_zhbgvd_work.c │ │ │ ├── lapacke_zhbgvx.c │ │ │ ├── lapacke_zhbgvx_work.c │ │ │ ├── lapacke_zhbtrd.c │ │ │ ├── lapacke_zhbtrd_work.c │ │ │ ├── lapacke_zhecon.c │ │ │ ├── lapacke_zhecon_3.c │ │ │ ├── lapacke_zhecon_3_work.c │ │ │ ├── lapacke_zhecon_work.c │ │ │ ├── lapacke_zheequb.c │ │ │ ├── lapacke_zheequb_work.c │ │ │ ├── lapacke_zheev.c │ │ │ ├── lapacke_zheev_2stage.c │ │ │ ├── lapacke_zheev_2stage_work.c │ │ │ ├── lapacke_zheev_work.c │ │ │ ├── lapacke_zheevd.c │ │ │ ├── lapacke_zheevd_2stage.c │ │ │ ├── lapacke_zheevd_2stage_work.c │ │ │ ├── lapacke_zheevd_work.c │ │ │ ├── lapacke_zheevr.c │ │ │ ├── lapacke_zheevr_2stage.c │ │ │ ├── lapacke_zheevr_2stage_work.c │ │ │ ├── lapacke_zheevr_work.c │ │ │ ├── lapacke_zheevx.c │ │ │ ├── lapacke_zheevx_2stage.c │ │ │ ├── lapacke_zheevx_2stage_work.c │ │ │ ├── lapacke_zheevx_work.c │ │ │ ├── lapacke_zhegst.c │ │ │ ├── lapacke_zhegst_work.c │ │ │ ├── lapacke_zhegv.c │ │ │ ├── lapacke_zhegv_2stage.c │ │ │ ├── lapacke_zhegv_2stage_work.c │ │ │ ├── lapacke_zhegv_work.c │ │ │ ├── lapacke_zhegvd.c │ │ │ ├── lapacke_zhegvd_work.c │ │ │ ├── lapacke_zhegvx.c │ │ │ ├── lapacke_zhegvx_work.c │ │ │ ├── lapacke_zherfs.c │ │ │ ├── lapacke_zherfs_work.c │ │ │ ├── lapacke_zherfsx.c │ │ │ ├── lapacke_zherfsx_work.c │ │ │ ├── lapacke_zhesv.c │ │ │ ├── lapacke_zhesv_aa.c │ │ │ ├── lapacke_zhesv_aa_2stage.c │ │ │ ├── lapacke_zhesv_aa_2stage_work.c │ │ │ ├── lapacke_zhesv_aa_work.c │ │ │ ├── lapacke_zhesv_rk.c │ │ │ ├── lapacke_zhesv_rk_work.c │ │ │ ├── lapacke_zhesv_work.c │ │ │ ├── lapacke_zhesvx.c │ │ │ ├── lapacke_zhesvx_work.c │ │ │ ├── lapacke_zhesvxx.c │ │ │ ├── lapacke_zhesvxx_work.c │ │ │ ├── lapacke_zheswapr.c │ │ │ ├── lapacke_zheswapr_work.c │ │ │ ├── lapacke_zhetrd.c │ │ │ ├── lapacke_zhetrd_work.c │ │ │ ├── lapacke_zhetrf.c │ │ │ ├── lapacke_zhetrf_aa.c │ │ │ ├── lapacke_zhetrf_aa_2stage.c │ │ │ ├── lapacke_zhetrf_aa_2stage_work.c │ │ │ ├── lapacke_zhetrf_aa_work.c │ │ │ ├── lapacke_zhetrf_rk.c │ │ │ ├── lapacke_zhetrf_rk_work.c │ │ │ ├── lapacke_zhetrf_rook.c │ │ │ ├── lapacke_zhetrf_rook_work.c │ │ │ ├── lapacke_zhetrf_work.c │ │ │ ├── lapacke_zhetri.c │ │ │ ├── lapacke_zhetri2.c │ │ │ ├── lapacke_zhetri2_work.c │ │ │ ├── lapacke_zhetri2x.c │ │ │ ├── lapacke_zhetri2x_work.c │ │ │ ├── lapacke_zhetri_3.c │ │ │ ├── lapacke_zhetri_3_work.c │ │ │ ├── lapacke_zhetri_work.c │ │ │ ├── lapacke_zhetrs.c │ │ │ ├── lapacke_zhetrs2.c │ │ │ ├── lapacke_zhetrs2_work.c │ │ │ ├── lapacke_zhetrs_3.c │ │ │ ├── lapacke_zhetrs_3_work.c │ │ │ ├── lapacke_zhetrs_aa.c │ │ │ ├── lapacke_zhetrs_aa_2stage.c │ │ │ ├── lapacke_zhetrs_aa_2stage_work.c │ │ │ ├── lapacke_zhetrs_aa_work.c │ │ │ ├── lapacke_zhetrs_rook.c │ │ │ ├── lapacke_zhetrs_rook_work.c │ │ │ ├── lapacke_zhetrs_work.c │ │ │ ├── lapacke_zhfrk.c │ │ │ ├── lapacke_zhfrk_work.c │ │ │ ├── lapacke_zhgeqz.c │ │ │ ├── lapacke_zhgeqz_work.c │ │ │ ├── lapacke_zhpcon.c │ │ │ ├── lapacke_zhpcon_work.c │ │ │ ├── lapacke_zhpev.c │ │ │ ├── lapacke_zhpev_work.c │ │ │ ├── lapacke_zhpevd.c │ │ │ ├── lapacke_zhpevd_work.c │ │ │ ├── lapacke_zhpevx.c │ │ │ ├── lapacke_zhpevx_work.c │ │ │ ├── lapacke_zhpgst.c │ │ │ ├── lapacke_zhpgst_work.c │ │ │ ├── lapacke_zhpgv.c │ │ │ ├── lapacke_zhpgv_work.c │ │ │ ├── lapacke_zhpgvd.c │ │ │ ├── lapacke_zhpgvd_work.c │ │ │ ├── lapacke_zhpgvx.c │ │ │ ├── lapacke_zhpgvx_work.c │ │ │ ├── lapacke_zhprfs.c │ │ │ ├── lapacke_zhprfs_work.c │ │ │ ├── lapacke_zhpsv.c │ │ │ ├── lapacke_zhpsv_work.c │ │ │ ├── lapacke_zhpsvx.c │ │ │ ├── lapacke_zhpsvx_work.c │ │ │ ├── lapacke_zhptrd.c │ │ │ ├── lapacke_zhptrd_work.c │ │ │ ├── lapacke_zhptrf.c │ │ │ ├── lapacke_zhptrf_work.c │ │ │ ├── lapacke_zhptri.c │ │ │ ├── lapacke_zhptri_work.c │ │ │ ├── lapacke_zhptrs.c │ │ │ ├── lapacke_zhptrs_work.c │ │ │ ├── lapacke_zhsein.c │ │ │ ├── lapacke_zhsein_work.c │ │ │ ├── lapacke_zhseqr.c │ │ │ ├── lapacke_zhseqr_work.c │ │ │ ├── lapacke_zlacgv.c │ │ │ ├── lapacke_zlacgv_work.c │ │ │ ├── lapacke_zlacn2.c │ │ │ ├── lapacke_zlacn2_work.c │ │ │ ├── lapacke_zlacp2.c │ │ │ ├── lapacke_zlacp2_work.c │ │ │ ├── lapacke_zlacpy.c │ │ │ ├── lapacke_zlacpy_work.c │ │ │ ├── lapacke_zlacrm.c │ │ │ ├── lapacke_zlacrm_work.c │ │ │ ├── lapacke_zlag2c.c │ │ │ ├── lapacke_zlag2c_work.c │ │ │ ├── lapacke_zlagge.c │ │ │ ├── lapacke_zlagge_work.c │ │ │ ├── lapacke_zlaghe.c │ │ │ ├── lapacke_zlaghe_work.c │ │ │ ├── lapacke_zlagsy.c │ │ │ ├── lapacke_zlagsy_work.c │ │ │ ├── lapacke_zlangb.c │ │ │ ├── lapacke_zlangb_work.c │ │ │ ├── lapacke_zlange.c │ │ │ ├── lapacke_zlange_work.c │ │ │ ├── lapacke_zlanhe.c │ │ │ ├── lapacke_zlanhe_work.c │ │ │ ├── lapacke_zlansy.c │ │ │ ├── lapacke_zlansy_work.c │ │ │ ├── lapacke_zlantr.c │ │ │ ├── lapacke_zlantr_work.c │ │ │ ├── lapacke_zlapmr.c │ │ │ ├── lapacke_zlapmr_work.c │ │ │ ├── lapacke_zlapmt.c │ │ │ ├── lapacke_zlapmt_work.c │ │ │ ├── lapacke_zlarcm.c │ │ │ ├── lapacke_zlarcm_work.c │ │ │ ├── lapacke_zlarfb.c │ │ │ ├── lapacke_zlarfb_work.c │ │ │ ├── lapacke_zlarfg.c │ │ │ ├── lapacke_zlarfg_work.c │ │ │ ├── lapacke_zlarft.c │ │ │ ├── lapacke_zlarft_work.c │ │ │ ├── lapacke_zlarfx.c │ │ │ ├── lapacke_zlarfx_work.c │ │ │ ├── lapacke_zlarnv.c │ │ │ ├── lapacke_zlarnv_work.c │ │ │ ├── lapacke_zlascl.c │ │ │ ├── lapacke_zlascl_work.c │ │ │ ├── lapacke_zlaset.c │ │ │ ├── lapacke_zlaset_work.c │ │ │ ├── lapacke_zlassq.c │ │ │ ├── lapacke_zlassq_work.c │ │ │ ├── lapacke_zlaswp.c │ │ │ ├── lapacke_zlaswp_work.c │ │ │ ├── lapacke_zlatms.c │ │ │ ├── lapacke_zlatms_work.c │ │ │ ├── lapacke_zlauum.c │ │ │ ├── lapacke_zlauum_work.c │ │ │ ├── lapacke_zpbcon.c │ │ │ ├── lapacke_zpbcon_work.c │ │ │ ├── lapacke_zpbequ.c │ │ │ ├── lapacke_zpbequ_work.c │ │ │ ├── lapacke_zpbrfs.c │ │ │ ├── lapacke_zpbrfs_work.c │ │ │ ├── lapacke_zpbstf.c │ │ │ ├── lapacke_zpbstf_work.c │ │ │ ├── lapacke_zpbsv.c │ │ │ ├── lapacke_zpbsv_work.c │ │ │ ├── lapacke_zpbsvx.c │ │ │ ├── lapacke_zpbsvx_work.c │ │ │ ├── lapacke_zpbtrf.c │ │ │ ├── lapacke_zpbtrf_work.c │ │ │ ├── lapacke_zpbtrs.c │ │ │ ├── lapacke_zpbtrs_work.c │ │ │ ├── lapacke_zpftrf.c │ │ │ ├── lapacke_zpftrf_work.c │ │ │ ├── lapacke_zpftri.c │ │ │ ├── lapacke_zpftri_work.c │ │ │ ├── lapacke_zpftrs.c │ │ │ ├── lapacke_zpftrs_work.c │ │ │ ├── lapacke_zpocon.c │ │ │ ├── lapacke_zpocon_work.c │ │ │ ├── lapacke_zpoequ.c │ │ │ ├── lapacke_zpoequ_work.c │ │ │ ├── lapacke_zpoequb.c │ │ │ ├── lapacke_zpoequb_work.c │ │ │ ├── lapacke_zporfs.c │ │ │ ├── lapacke_zporfs_work.c │ │ │ ├── lapacke_zporfsx.c │ │ │ ├── lapacke_zporfsx_work.c │ │ │ ├── lapacke_zposv.c │ │ │ ├── lapacke_zposv_work.c │ │ │ ├── lapacke_zposvx.c │ │ │ ├── lapacke_zposvx_work.c │ │ │ ├── lapacke_zposvxx.c │ │ │ ├── lapacke_zposvxx_work.c │ │ │ ├── lapacke_zpotrf.c │ │ │ ├── lapacke_zpotrf2.c │ │ │ ├── lapacke_zpotrf2_work.c │ │ │ ├── lapacke_zpotrf_work.c │ │ │ ├── lapacke_zpotri.c │ │ │ ├── lapacke_zpotri_work.c │ │ │ ├── lapacke_zpotrs.c │ │ │ ├── lapacke_zpotrs_work.c │ │ │ ├── lapacke_zppcon.c │ │ │ ├── lapacke_zppcon_work.c │ │ │ ├── lapacke_zppequ.c │ │ │ ├── lapacke_zppequ_work.c │ │ │ ├── lapacke_zpprfs.c │ │ │ ├── lapacke_zpprfs_work.c │ │ │ ├── lapacke_zppsv.c │ │ │ ├── lapacke_zppsv_work.c │ │ │ ├── lapacke_zppsvx.c │ │ │ ├── lapacke_zppsvx_work.c │ │ │ ├── lapacke_zpptrf.c │ │ │ ├── lapacke_zpptrf_work.c │ │ │ ├── lapacke_zpptri.c │ │ │ ├── lapacke_zpptri_work.c │ │ │ ├── lapacke_zpptrs.c │ │ │ ├── lapacke_zpptrs_work.c │ │ │ ├── lapacke_zpstrf.c │ │ │ ├── lapacke_zpstrf_work.c │ │ │ ├── lapacke_zptcon.c │ │ │ ├── lapacke_zptcon_work.c │ │ │ ├── lapacke_zpteqr.c │ │ │ ├── lapacke_zpteqr_work.c │ │ │ ├── lapacke_zptrfs.c │ │ │ ├── lapacke_zptrfs_work.c │ │ │ ├── lapacke_zptsv.c │ │ │ ├── lapacke_zptsv_work.c │ │ │ ├── lapacke_zptsvx.c │ │ │ ├── lapacke_zptsvx_work.c │ │ │ ├── lapacke_zpttrf.c │ │ │ ├── lapacke_zpttrf_work.c │ │ │ ├── lapacke_zpttrs.c │ │ │ ├── lapacke_zpttrs_work.c │ │ │ ├── lapacke_zspcon.c │ │ │ ├── lapacke_zspcon_work.c │ │ │ ├── lapacke_zsprfs.c │ │ │ ├── lapacke_zsprfs_work.c │ │ │ ├── lapacke_zspsv.c │ │ │ ├── lapacke_zspsv_work.c │ │ │ ├── lapacke_zspsvx.c │ │ │ ├── lapacke_zspsvx_work.c │ │ │ ├── lapacke_zsptrf.c │ │ │ ├── lapacke_zsptrf_work.c │ │ │ ├── lapacke_zsptri.c │ │ │ ├── lapacke_zsptri_work.c │ │ │ ├── lapacke_zsptrs.c │ │ │ ├── lapacke_zsptrs_work.c │ │ │ ├── lapacke_zstedc.c │ │ │ ├── lapacke_zstedc_work.c │ │ │ ├── lapacke_zstegr.c │ │ │ ├── lapacke_zstegr_work.c │ │ │ ├── lapacke_zstein.c │ │ │ ├── lapacke_zstein_work.c │ │ │ ├── lapacke_zstemr.c │ │ │ ├── lapacke_zstemr_work.c │ │ │ ├── lapacke_zsteqr.c │ │ │ ├── lapacke_zsteqr_work.c │ │ │ ├── lapacke_zsycon.c │ │ │ ├── lapacke_zsycon_3.c │ │ │ ├── lapacke_zsycon_3_work.c │ │ │ ├── lapacke_zsycon_work.c │ │ │ ├── lapacke_zsyconv.c │ │ │ ├── lapacke_zsyconv_work.c │ │ │ ├── lapacke_zsyequb.c │ │ │ ├── lapacke_zsyequb_work.c │ │ │ ├── lapacke_zsyr.c │ │ │ ├── lapacke_zsyr_work.c │ │ │ ├── lapacke_zsyrfs.c │ │ │ ├── lapacke_zsyrfs_work.c │ │ │ ├── lapacke_zsyrfsx.c │ │ │ ├── lapacke_zsyrfsx_work.c │ │ │ ├── lapacke_zsysv.c │ │ │ ├── lapacke_zsysv_aa.c │ │ │ ├── lapacke_zsysv_aa_2stage.c │ │ │ ├── lapacke_zsysv_aa_2stage_work.c │ │ │ ├── lapacke_zsysv_aa_work.c │ │ │ ├── lapacke_zsysv_rk.c │ │ │ ├── lapacke_zsysv_rk_work.c │ │ │ ├── lapacke_zsysv_rook.c │ │ │ ├── lapacke_zsysv_rook_work.c │ │ │ ├── lapacke_zsysv_work.c │ │ │ ├── lapacke_zsysvx.c │ │ │ ├── lapacke_zsysvx_work.c │ │ │ ├── lapacke_zsysvxx.c │ │ │ ├── lapacke_zsysvxx_work.c │ │ │ ├── lapacke_zsyswapr.c │ │ │ ├── lapacke_zsyswapr_work.c │ │ │ ├── lapacke_zsytrf.c │ │ │ ├── lapacke_zsytrf_aa.c │ │ │ ├── lapacke_zsytrf_aa_2stage.c │ │ │ ├── lapacke_zsytrf_aa_2stage_work.c │ │ │ ├── lapacke_zsytrf_aa_work.c │ │ │ ├── lapacke_zsytrf_rk.c │ │ │ ├── lapacke_zsytrf_rk_work.c │ │ │ ├── lapacke_zsytrf_rook.c │ │ │ ├── lapacke_zsytrf_rook_work.c │ │ │ ├── lapacke_zsytrf_work.c │ │ │ ├── lapacke_zsytri.c │ │ │ ├── lapacke_zsytri2.c │ │ │ ├── lapacke_zsytri2_work.c │ │ │ ├── lapacke_zsytri2x.c │ │ │ ├── lapacke_zsytri2x_work.c │ │ │ ├── lapacke_zsytri_3.c │ │ │ ├── lapacke_zsytri_3_work.c │ │ │ ├── lapacke_zsytri_work.c │ │ │ ├── lapacke_zsytrs.c │ │ │ ├── lapacke_zsytrs2.c │ │ │ ├── lapacke_zsytrs2_work.c │ │ │ ├── lapacke_zsytrs_3.c │ │ │ ├── lapacke_zsytrs_3_work.c │ │ │ ├── lapacke_zsytrs_aa.c │ │ │ ├── lapacke_zsytrs_aa_2stage.c │ │ │ ├── lapacke_zsytrs_aa_2stage_work.c │ │ │ ├── lapacke_zsytrs_aa_work.c │ │ │ ├── lapacke_zsytrs_rook.c │ │ │ ├── lapacke_zsytrs_rook_work.c │ │ │ ├── lapacke_zsytrs_work.c │ │ │ ├── lapacke_ztbcon.c │ │ │ ├── lapacke_ztbcon_work.c │ │ │ ├── lapacke_ztbrfs.c │ │ │ ├── lapacke_ztbrfs_work.c │ │ │ ├── lapacke_ztbtrs.c │ │ │ ├── lapacke_ztbtrs_work.c │ │ │ ├── lapacke_ztfsm.c │ │ │ ├── lapacke_ztfsm_work.c │ │ │ ├── lapacke_ztftri.c │ │ │ ├── lapacke_ztftri_work.c │ │ │ ├── lapacke_ztfttp.c │ │ │ ├── lapacke_ztfttp_work.c │ │ │ ├── lapacke_ztfttr.c │ │ │ ├── lapacke_ztfttr_work.c │ │ │ ├── lapacke_ztgevc.c │ │ │ ├── lapacke_ztgevc_work.c │ │ │ ├── lapacke_ztgexc.c │ │ │ ├── lapacke_ztgexc_work.c │ │ │ ├── lapacke_ztgsen.c │ │ │ ├── lapacke_ztgsen_work.c │ │ │ ├── lapacke_ztgsja.c │ │ │ ├── lapacke_ztgsja_work.c │ │ │ ├── lapacke_ztgsna.c │ │ │ ├── lapacke_ztgsna_work.c │ │ │ ├── lapacke_ztgsyl.c │ │ │ ├── lapacke_ztgsyl_work.c │ │ │ ├── lapacke_ztpcon.c │ │ │ ├── lapacke_ztpcon_work.c │ │ │ ├── lapacke_ztpmqrt.c │ │ │ ├── lapacke_ztpmqrt_work.c │ │ │ ├── lapacke_ztpqrt.c │ │ │ ├── lapacke_ztpqrt2.c │ │ │ ├── lapacke_ztpqrt2_work.c │ │ │ ├── lapacke_ztpqrt_work.c │ │ │ ├── lapacke_ztprfb.c │ │ │ ├── lapacke_ztprfb_work.c │ │ │ ├── lapacke_ztprfs.c │ │ │ ├── lapacke_ztprfs_work.c │ │ │ ├── lapacke_ztptri.c │ │ │ ├── lapacke_ztptri_work.c │ │ │ ├── lapacke_ztptrs.c │ │ │ ├── lapacke_ztptrs_work.c │ │ │ ├── lapacke_ztpttf.c │ │ │ ├── lapacke_ztpttf_work.c │ │ │ ├── lapacke_ztpttr.c │ │ │ ├── lapacke_ztpttr_work.c │ │ │ ├── lapacke_ztrcon.c │ │ │ ├── lapacke_ztrcon_work.c │ │ │ ├── lapacke_ztrevc.c │ │ │ ├── lapacke_ztrevc_work.c │ │ │ ├── lapacke_ztrexc.c │ │ │ ├── lapacke_ztrexc_work.c │ │ │ ├── lapacke_ztrrfs.c │ │ │ ├── lapacke_ztrrfs_work.c │ │ │ ├── lapacke_ztrsen.c │ │ │ ├── lapacke_ztrsen_work.c │ │ │ ├── lapacke_ztrsna.c │ │ │ ├── lapacke_ztrsna_work.c │ │ │ ├── lapacke_ztrsyl.c │ │ │ ├── lapacke_ztrsyl3.c │ │ │ ├── lapacke_ztrsyl3_work.c │ │ │ ├── lapacke_ztrsyl_work.c │ │ │ ├── lapacke_ztrtri.c │ │ │ ├── lapacke_ztrtri_work.c │ │ │ ├── lapacke_ztrtrs.c │ │ │ ├── lapacke_ztrtrs_work.c │ │ │ ├── lapacke_ztrttf.c │ │ │ ├── lapacke_ztrttf_work.c │ │ │ ├── lapacke_ztrttp.c │ │ │ ├── lapacke_ztrttp_work.c │ │ │ ├── lapacke_ztzrzf.c │ │ │ ├── lapacke_ztzrzf_work.c │ │ │ ├── lapacke_zunbdb.c │ │ │ ├── lapacke_zunbdb_work.c │ │ │ ├── lapacke_zuncsd.c │ │ │ ├── lapacke_zuncsd2by1.c │ │ │ ├── lapacke_zuncsd2by1_work.c │ │ │ ├── lapacke_zuncsd_work.c │ │ │ ├── lapacke_zungbr.c │ │ │ ├── lapacke_zungbr_work.c │ │ │ ├── lapacke_zunghr.c │ │ │ ├── lapacke_zunghr_work.c │ │ │ ├── lapacke_zunglq.c │ │ │ ├── lapacke_zunglq_work.c │ │ │ ├── lapacke_zungql.c │ │ │ ├── lapacke_zungql_work.c │ │ │ ├── lapacke_zungqr.c │ │ │ ├── lapacke_zungqr_work.c │ │ │ ├── lapacke_zungrq.c │ │ │ ├── lapacke_zungrq_work.c │ │ │ ├── lapacke_zungtr.c │ │ │ ├── lapacke_zungtr_work.c │ │ │ ├── lapacke_zungtsqr_row.c │ │ │ ├── lapacke_zungtsqr_row_work.c │ │ │ ├── lapacke_zunhr_col.c │ │ │ ├── lapacke_zunhr_col_work.c │ │ │ ├── lapacke_zunmbr.c │ │ │ ├── lapacke_zunmbr_work.c │ │ │ ├── lapacke_zunmhr.c │ │ │ ├── lapacke_zunmhr_work.c │ │ │ ├── lapacke_zunmlq.c │ │ │ ├── lapacke_zunmlq_work.c │ │ │ ├── lapacke_zunmql.c │ │ │ ├── lapacke_zunmql_work.c │ │ │ ├── lapacke_zunmqr.c │ │ │ ├── lapacke_zunmqr_work.c │ │ │ ├── lapacke_zunmrq.c │ │ │ ├── lapacke_zunmrq_work.c │ │ │ ├── lapacke_zunmrz.c │ │ │ ├── lapacke_zunmrz_work.c │ │ │ ├── lapacke_zunmtr.c │ │ │ ├── lapacke_zunmtr_work.c │ │ │ ├── lapacke_zupgtr.c │ │ │ ├── lapacke_zupgtr_work.c │ │ │ ├── lapacke_zupmtr.c │ │ │ └── lapacke_zupmtr_work.c │ │ └── utils/ │ │ ├── CMakeLists.txt │ │ ├── Makefile │ │ ├── lapacke_c_nancheck.c │ │ ├── lapacke_cgb_nancheck.c │ │ ├── lapacke_cgb_trans.c │ │ ├── lapacke_cge_nancheck.c │ │ ├── lapacke_cge_trans.c │ │ ├── lapacke_cgg_nancheck.c │ │ ├── lapacke_cgg_trans.c │ │ ├── lapacke_cgt_nancheck.c │ │ ├── lapacke_chb_nancheck.c │ │ ├── lapacke_chb_trans.c │ │ ├── lapacke_che_nancheck.c │ │ ├── lapacke_che_trans.c │ │ ├── lapacke_chp_nancheck.c │ │ ├── lapacke_chp_trans.c │ │ ├── lapacke_chs_nancheck.c │ │ ├── lapacke_chs_trans.c │ │ ├── lapacke_cpb_nancheck.c │ │ ├── lapacke_cpb_trans.c │ │ ├── lapacke_cpf_nancheck.c │ │ ├── lapacke_cpf_trans.c │ │ ├── lapacke_cpo_nancheck.c │ │ ├── lapacke_cpo_trans.c │ │ ├── lapacke_cpp_nancheck.c │ │ ├── lapacke_cpp_trans.c │ │ ├── lapacke_cpt_nancheck.c │ │ ├── lapacke_csp_nancheck.c │ │ ├── lapacke_csp_trans.c │ │ ├── lapacke_cst_nancheck.c │ │ ├── lapacke_csy_nancheck.c │ │ ├── lapacke_csy_trans.c │ │ ├── lapacke_ctb_nancheck.c │ │ ├── lapacke_ctb_trans.c │ │ ├── lapacke_ctf_nancheck.c │ │ ├── lapacke_ctf_trans.c │ │ ├── lapacke_ctp_nancheck.c │ │ ├── lapacke_ctp_trans.c │ │ ├── lapacke_ctr_nancheck.c │ │ ├── lapacke_ctr_trans.c │ │ ├── lapacke_ctz_nancheck.c │ │ ├── lapacke_ctz_trans.c │ │ ├── lapacke_d_nancheck.c │ │ ├── lapacke_dgb_nancheck.c │ │ ├── lapacke_dgb_trans.c │ │ ├── lapacke_dge_nancheck.c │ │ ├── lapacke_dge_trans.c │ │ ├── lapacke_dgg_nancheck.c │ │ ├── lapacke_dgg_trans.c │ │ ├── lapacke_dgt_nancheck.c │ │ ├── lapacke_dhs_nancheck.c │ │ ├── lapacke_dhs_trans.c │ │ ├── lapacke_dpb_nancheck.c │ │ ├── lapacke_dpb_trans.c │ │ ├── lapacke_dpf_nancheck.c │ │ ├── lapacke_dpf_trans.c │ │ ├── lapacke_dpo_nancheck.c │ │ ├── lapacke_dpo_trans.c │ │ ├── lapacke_dpp_nancheck.c │ │ ├── lapacke_dpp_trans.c │ │ ├── lapacke_dpt_nancheck.c │ │ ├── lapacke_dsb_nancheck.c │ │ ├── lapacke_dsb_trans.c │ │ ├── lapacke_dsp_nancheck.c │ │ ├── lapacke_dsp_trans.c │ │ ├── lapacke_dst_nancheck.c │ │ ├── lapacke_dsy_nancheck.c │ │ ├── lapacke_dsy_trans.c │ │ ├── lapacke_dtb_nancheck.c │ │ ├── lapacke_dtb_trans.c │ │ ├── lapacke_dtf_nancheck.c │ │ ├── lapacke_dtf_trans.c │ │ ├── lapacke_dtp_nancheck.c │ │ ├── lapacke_dtp_trans.c │ │ ├── lapacke_dtr_nancheck.c │ │ ├── lapacke_dtr_trans.c │ │ ├── lapacke_dtz_nancheck.c │ │ ├── lapacke_dtz_trans.c │ │ ├── lapacke_lsame.c │ │ ├── lapacke_make_complex_double.c │ │ ├── lapacke_make_complex_float.c │ │ ├── lapacke_s_nancheck.c │ │ ├── lapacke_sgb_nancheck.c │ │ ├── lapacke_sgb_trans.c │ │ ├── lapacke_sge_nancheck.c │ │ ├── lapacke_sge_trans.c │ │ ├── lapacke_sgg_nancheck.c │ │ ├── lapacke_sgg_trans.c │ │ ├── lapacke_sgt_nancheck.c │ │ ├── lapacke_shs_nancheck.c │ │ ├── lapacke_shs_trans.c │ │ ├── lapacke_spb_nancheck.c │ │ ├── lapacke_spb_trans.c │ │ ├── lapacke_spf_nancheck.c │ │ ├── lapacke_spf_trans.c │ │ ├── lapacke_spo_nancheck.c │ │ ├── lapacke_spo_trans.c │ │ ├── lapacke_spp_nancheck.c │ │ ├── lapacke_spp_trans.c │ │ ├── lapacke_spt_nancheck.c │ │ ├── lapacke_ssb_nancheck.c │ │ ├── lapacke_ssb_trans.c │ │ ├── lapacke_ssp_nancheck.c │ │ ├── lapacke_ssp_trans.c │ │ ├── lapacke_sst_nancheck.c │ │ ├── lapacke_ssy_nancheck.c │ │ ├── lapacke_ssy_trans.c │ │ ├── lapacke_stb_nancheck.c │ │
Copy disabled (too large)
Download .json
Condensed preview — 12546 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (112,470K chars).
[
{
"path": ".cirrus.yml",
"chars": 5753,
"preview": "macos_instance:\n image: ghcr.io/cirruslabs/macos-monterey-xcode:latest\n\n#task:\n# name: AppleM1/LLVM\n# compile_script:"
},
{
"path": ".cirun.yml",
"chars": 561,
"preview": "# Self-Hosted Github Action Runners on AWS via Cirun.io\n# Reference: https://docs.cirun.io/reference/yaml\nrunners:\n - n"
},
{
"path": ".drone.yml",
"chars": 4572,
"preview": "---\nkind: pipeline\nname: arm64_gcc_make\n\nplatform:\n os: linux\n arch: arm64\n\nsteps:\n- name: Build and Test\n image: ubu"
},
{
"path": ".github/workflows/apple_m.yml",
"chars": 5852,
"preview": "name: apple m\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref || github.run_"
},
{
"path": ".github/workflows/arm64_graviton.yml",
"chars": 4698,
"preview": "name: arm64 graviton cirun\n\non:\n push:\n branches:\n - develop\n - release-**\n pull_request:\n branches:\n "
},
{
"path": ".github/workflows/c910v.yml",
"chars": 7347,
"preview": "name: c910v qemu test\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref || git"
},
{
"path": ".github/workflows/codspeed-bench.yml",
"chars": 5808,
"preview": "name: Run codspeed benchmarks\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_re"
},
{
"path": ".github/workflows/docs.yml",
"chars": 1112,
"preview": "name: Publish docs via GitHub Pages\n\non:\n push:\n branches:\n - develop\n pull_request:\n branches:\n - dev"
},
{
"path": ".github/workflows/dynamic_arch.yml",
"chars": 14556,
"preview": "name: continuous build\n\non: [push, pull_request, workflow_dispatch]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ gi"
},
{
"path": ".github/workflows/harmonyos.yml",
"chars": 1224,
"preview": "name: harmonyos\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref || github.ru"
},
{
"path": ".github/workflows/loongarch64.yml",
"chars": 6341,
"preview": "name: loongarch64 qemu test\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref "
},
{
"path": ".github/workflows/loongarch64_clang.yml",
"chars": 7161,
"preview": "name: loongarch64 clang qemu test\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.hea"
},
{
"path": ".github/workflows/mips64.yml",
"chars": 5766,
"preview": "name: mips64 qemu test\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_ref || gi"
},
{
"path": ".github/workflows/nightly-Homebrew-build.yml",
"chars": 2711,
"preview": "# Only the \"head\" branch of the OpenBLAS package is tested\n\non:\n push:\n paths:\n - '**/nightly-Homebrew-build.ym"
},
{
"path": ".github/workflows/riscv64_vector.yml",
"chars": 19123,
"preview": "name: riscv64 zvl256b qemu test\n\non: [push, pull_request]\n\nconcurrency:\n group: ${{ github.workflow }}-${{ github.head_"
},
{
"path": ".github/workflows/windows_arm64.yml",
"chars": 2755,
"preview": "name: Windows ARM64 CI\n\non:\n push:\n branches:\n - develop\n pull_request:\n branches:\n - develop\n\nconcurr"
},
{
"path": ".gitignore",
"chars": 2015,
"preview": "*.obj\n*.lib\n*.dll\n*.dylib\n*.def\n*.o\n*.out\n*.tmp\nlapack-3.1.1\nlapack-3.1.1.tgz\nlapack-3.4.1\nlapack-3.4.1.tgz\nlapack-3.4.2"
},
{
"path": ".travis.yml",
"chars": 10610,
"preview": "# XXX: Precise is already deprecated, new default is Trusty.\n# https://blog.travis-ci.com/2017-07-11-trusty-as-default-l"
},
{
"path": "BACKERS.md",
"chars": 1081,
"preview": "Thank you for the support.\n\n### [2019.12/2021.9] [Chan-Zuckerberg Foundation EOSS Initiative](https://chanzuckerberg.com"
},
{
"path": "CMakeLists.txt",
"chars": 31492,
"preview": "##\n## Author: Hank Anderson <hank@statease.com>\n##\n\ncmake_minimum_required(VERSION 3.16.0)\n\nset (CMAKE_ASM_SOURCE_FILE_E"
},
{
"path": "CONTRIBUTORS.md",
"chars": 11407,
"preview": "# Contributions to the OpenBLAS project\n\n## Creator & Maintainer\n\n* Zhang Xianyi <traits.zhang@gmail.com>\n\n## Active Dev"
},
{
"path": "Changelog.txt",
"chars": 110930,
"preview": "OpenBLAS ChangeLog\n====================================================================\nVersion 0.3.31\n15-Jan-2025\n\ngene"
},
{
"path": "GotoBLAS_00License.txt",
"chars": 1608,
"preview": "\nCopyright 2009, 2010 The University of Texas at Austin.\nAll rights reserved.\n\nRedistribution and use in source and bina"
},
{
"path": "GotoBLAS_01Readme.txt",
"chars": 2044,
"preview": " Optimized GotoBLAS2 libraries version 1.13\n\n By Kazushige Goto <kgoto@tacc.utexas.ed"
},
{
"path": "GotoBLAS_02QuickInstall.txt",
"chars": 3700,
"preview": " Quick installation for GotoBLAS2\n\n**********************************************************************"
},
{
"path": "GotoBLAS_03FAQ.txt",
"chars": 4662,
"preview": "\tGotoBLAS2 FAQ\n\n1. General\n\n1.1 Q Can I find useful paper about GotoBLAS2?\n\n A You may check following URL.\n\n h"
},
{
"path": "GotoBLAS_04FAQ.txt",
"chars": 296,
"preview": "\nQuick guide to build library for Windows 64bit.\n\n1. What you need\n\n a. Windows Server 2003 or later\n b. Cygwin environm"
},
{
"path": "GotoBLAS_05LargePage.txt",
"chars": 1518,
"preview": " To enhance perfomance, I'd recommend you to enable large page on\n your OS (root account is required).\n\n A) Linux\n\n "
},
{
"path": "GotoBLAS_06WeirdPerformance.txt",
"chars": 895,
"preview": " Weird Performance\n\n1. If you see serious performance loss (extremely low performance),\n probably you created t"
},
{
"path": "Jenkinsfile",
"chars": 461,
"preview": "pipeline {\n agent { \n docker {\n image 'osuosl/ubuntu-s390x'\n }\n }\n stages {\n st"
},
{
"path": "Jenkinsfile.pwr",
"chars": 833,
"preview": "pipeline {\n agent none\n stages {\n stage('GCC build') {\n agent {\n docker {\n "
},
{
"path": "LICENSE",
"chars": 1548,
"preview": "Copyright (c) 2011-2014, The OpenBLAS Project\nAll rights reserved.\n\nRedistribution and use in source and binary forms, w"
},
{
"path": "Makefile",
"chars": 13683,
"preview": "TOPDIR\t= .\ninclude ./Makefile.system\nLNCMD = ln -fs\nifeq ($(FIXED_LIBNAME), 1)\nLNCMD = true\nendif\n\nBLASDIRS = interface "
},
{
"path": "Makefile.alpha",
"chars": 747,
"preview": "ifneq ($(COMPILER), NATIVE)\n# GCC User\nifeq ($(CORE), EV4)\nCCOMMON_OPT += -mcpu=ev4\nendif\nifeq ($(CORE), EV5)\nCCOMMON_OP"
},
{
"path": "Makefile.arm",
"chars": 422,
"preview": "ifeq ($(CORE), $(filter $(CORE),ARMV7 CORTEXA9 CORTEXA15))\nifeq ($(OSNAME), Android)\nCCOMMON_OPT += -mfpu=neon -march=ar"
},
{
"path": "Makefile.arm64",
"chars": 11727,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "Makefile.csky",
"chars": 168,
"preview": "ifeq ($(CORE), CK860FV)\nCCOMMON_OPT += -march=ck860v -mcpu=ck860fv -mfdivdu -mhard-float\nFCOMMON_OPT += -march=ck860v -m"
},
{
"path": "Makefile.e2k",
"chars": 30,
"preview": "COPT\t= -Wall -O2 # -DGEMMTEST\n"
},
{
"path": "Makefile.generic",
"chars": 30,
"preview": "COPT\t= -Wall -O2 # -DGEMMTEST\n"
},
{
"path": "Makefile.ia64",
"chars": 863,
"preview": "CCOMMON_COPT += # -DUSE64BITINT # -DGEMMTEST\n\n# CCOMMON_OPT\t += -DPARAMTEST\nFLAMEPATH\t= $(HOME)/flame/lib/ia64\n\nifndef "
},
{
"path": "Makefile.install",
"chars": 17155,
"preview": "TOPDIR\t= .\nexport GOTOBLAS_MAKEFILE = 1\n-include $(TOPDIR)/Makefile.conf_last\ninclude ./Makefile.system\nLNCMD = ln -fs\n\n"
},
{
"path": "Makefile.loongarch64",
"chars": 26,
"preview": "ifdef BINARY64\nelse\nendif\n"
},
{
"path": "Makefile.mips",
"chars": 70,
"preview": "MSA_FLAGS = -mmsa -mfp64 -mload-store-pairs\nifdef BINARY64\nelse\nendif\n"
},
{
"path": "Makefile.mips64",
"chars": 70,
"preview": "MSA_FLAGS = -mmsa -mfp64 -mload-store-pairs\nifdef BINARY64\nelse\nendif\n"
},
{
"path": "Makefile.power",
"chars": 6112,
"preview": "\nifdef USE_THREAD\nifeq ($(USE_THREAD), 0)\nUSE_OPENMP = 0\nelse\nUSE_OPENMP = 1\nendif\nelse\nUSE_OPENMP = 1\nendif\n\nifeq ($(CO"
},
{
"path": "Makefile.prebuild",
"chars": 2668,
"preview": "# This is triggered by Makefile.system and runs before any of the code is built.\n\nexport BINARY\nexport USE_OPENMP\n\nifdef"
},
{
"path": "Makefile.riscv64",
"chars": 923,
"preview": "ifeq ($(CORE), C910V)\nCCOMMON_OPT += -march=rv64imafdcv0p7_zfh_xtheadc -mabi=lp64d -mtune=c920\nFCOMMON_OPT += -march=rv6"
},
{
"path": "Makefile.rule",
"chars": 14158,
"preview": "#\n# Beginning of user configuration\n#\n\n# This library's version\nVERSION = 0.3.31.dev\n\n# If you set this prefix, the lib"
},
{
"path": "Makefile.sparc",
"chars": 936,
"preview": "CPP\t= $(CC) -E\nRANLIB = ranlib\n\nifdef BINARY64\n\nifeq ($(C_COMPILER), GCC)\nCCOMMON_OPT += -mcpu=v9 -m64\nelse\nCCOMMON_OPT"
},
{
"path": "Makefile.system",
"chars": 41643,
"preview": "#\n# Include user definition\n#\n\n# TO suppress recursive includes\nINCLUDED = 1\n\nifndef TOPDIR\nTOPDIR = . \nendif\n\nifndef RE"
},
{
"path": "Makefile.tail",
"chars": 24124,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "Makefile.wasm",
"chars": 25,
"preview": "CCOMMON_OPT += -msimd128\n"
},
{
"path": "Makefile.x86",
"chars": 2327,
"preview": "# COMPILER_PREFIX = mingw32-\n\nifneq ($(DYNAMIC_ARCH),1)\nADD_CPUFLAGS = 1\nelse\nifdef TARGET_CORE\nADD_CPUFLAGS = 1\nendif\ne"
},
{
"path": "Makefile.x86_64",
"chars": 8384,
"preview": "# CCOMMON_OPT\t+= -DFASTCPU\n\nifeq ($(OSNAME), SunOS)\nifdef BINARY64\nifeq ($(F_COMPILER), SUN)\nFCOMMON_OPT += -m64\nendif\ne"
},
{
"path": "Makefile.zarch",
"chars": 361,
"preview": "\nifeq ($(CORE), Z13)\nCCOMMON_OPT += -march=z13 -mzvector\nFCOMMON_OPT += -march=z13 -mzvector\nendif\n\nifeq ($(CORE), Z14)\n"
},
{
"path": "README.md",
"chars": 20409,
"preview": "# OpenBLAS\n\n[](https://gi"
},
{
"path": "SECURITY.md",
"chars": 959,
"preview": "# Security Policy\n\n## Supported Versions\n\nIt is generally recommended to use the latest release as this project\ndoes not"
},
{
"path": "TargetList.txt",
"chars": 1734,
"preview": "Force Target Examples:\n\nmake TARGET=NEHALEM\nmake TARGET=LOONGSON3A BINARY=64\nmake TARGET=ISTANBUL\n\nSupported List:\n1.X86"
},
{
"path": "USAGE.md",
"chars": 7580,
"preview": "# Notes on OpenBLAS usage\n## Usage\n\n#### Program is Terminated. Because you tried to allocate too many memory regions\n\nI"
},
{
"path": "appveyor.yml",
"chars": 3017,
"preview": "version: 0.2.19.{build}\n\n#environment:\n\nplatform: \n - x64\n\nos: Visual Studio 2017\n\nconfiguration: Release\n\nclone_folder"
},
{
"path": "azure-pipelines.yml",
"chars": 13663,
"preview": "trigger:\n # start a new build for every push\n batch: False\n branches:\n include:\n - develop\nresources:\n conta"
},
{
"path": "benchmark/Make_exe.sh",
"chars": 118,
"preview": "#!/bin/bash\n\nfor f in *.goto *.acml *.mkl *.atlas\ndo\n\tif [ -f \"$f\" ]; then\n\t\tmv $f `echo $f|tr '.' '_'`.exe\n\tfi\ndone\n\n"
},
{
"path": "benchmark/Makefile",
"chars": 136458,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "benchmark/amax.c",
"chars": 3392,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/amin.c",
"chars": 3396,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/asum.c",
"chars": 3504,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/axpby.c",
"chars": 3799,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/axpy.c",
"chars": 3707,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/bench.h",
"chars": 3368,
"preview": "#include <stdio.h>\n#include <stdlib.h>\n#include <time.h>\n#ifdef __CYGWIN32__\n#include <sys/time.h>\n#elif defined(__APPLE"
},
{
"path": "benchmark/cholesky.c",
"chars": 8594,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "benchmark/copy.c",
"chars": 3750,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/cula_wrapper.c",
"chars": 502,
"preview": "#include <stdio.h>\n#include \"culapack.h\"\n\nstatic int initialized = 0;\n\nint sgetrf_(int *m, int *n, float *a, int *lda, "
},
{
"path": "benchmark/dot.c",
"chars": 3552,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/geev.c",
"chars": 6530,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "benchmark/gemm.c",
"chars": 5380,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/gemm3m.c",
"chars": 3928,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/gemv.c",
"chars": 5988,
"preview": "/***************************************************************************\nCopyright (c) 2014, 2025 The OpenBLAS Proje"
},
{
"path": "benchmark/ger.c",
"chars": 4359,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/gesv.c",
"chars": 4921,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "benchmark/getri.c",
"chars": 5884,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "benchmark/hbmv.c",
"chars": 4339,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/hemm.c",
"chars": 3679,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/hemv.c",
"chars": 4037,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/her.c",
"chars": 3466,
"preview": "/***************************************************************************\nCopyright (c) 2020, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/her2.c",
"chars": 3694,
"preview": "/***************************************************************************\nCopyright (c) 2020, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/her2k.c",
"chars": 3690,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/herk.c",
"chars": 3456,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/hpmv.c",
"chars": 4225,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/iamax.c",
"chars": 3338,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/iamin.c",
"chars": 3340,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/imax.c",
"chars": 3234,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/imin.c",
"chars": 3234,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/linpack.c",
"chars": 6563,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "benchmark/max.c",
"chars": 3235,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/min.c",
"chars": 3235,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/nrm2.c",
"chars": 3326,
"preview": "/***************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/omatcopy.c",
"chars": 3846,
"preview": "/***************************************************************************\nCopyright (c) 2024, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/plot-filter.sh",
"chars": 2364,
"preview": "#!/bin/sh\n# **********************************************************************************\n# Copyright (c) 2014, The"
},
{
"path": "benchmark/plot-header",
"chars": 2062,
"preview": "# **********************************************************************************\n# Copyright (c) 2014, The OpenBLAS "
},
{
"path": "benchmark/potrf.c",
"chars": 8397,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "benchmark/pybench/README.md",
"chars": 3274,
"preview": "# Continuous benchmarking of OpenBLAS performance\n\nWe run a set of benchmarks of subset of OpenBLAS functionality.\n\n## B"
},
{
"path": "benchmark/pybench/benchmarks/bench_blas.py",
"chars": 6497,
"preview": "import pytest\nimport numpy as np\nimport openblas_wrap as ow\n\ndtype_map = {\n 's': np.float32,\n 'd': np.float64,\n "
},
{
"path": "benchmark/pybench/meson.build",
"chars": 1208,
"preview": "#\n# Taken from SciPy (of course)\n#\nproject(\n 'openblas-wrap',\n 'c', 'fortran',\n version: '0.1',\n license: 'BSD-3',\n "
},
{
"path": "benchmark/pybench/openblas_wrap/__init__.py",
"chars": 306,
"preview": "\"\"\"\nTrampoline to hide the LAPACK details (scipy.lapack.linalg or scipy_openblas32 or...)\nfrom benchmarking.\n\"\"\"\n\n__vers"
},
{
"path": "benchmark/pybench/openblas_wrap/blas_lapack.pyf.src",
"chars": 15815,
"preview": "!\n! Taken from scipy/linalg\n!\n! Shorthand notations\n!\n! <tchar=s,d,cs,zd>\n! <tchar2c=cs,zd>\n!\n! <prefix2=s,d>\n! <prefix2"
},
{
"path": "benchmark/pybench/openblas_wrap/generate_f2pymod.py",
"chars": 9420,
"preview": "#!/usr/bin/env python3\n\"\"\"\nProcess f2py template files (`filename.pyf.src` -> `filename.pyf`)\n\nUsage: python generate_py"
},
{
"path": "benchmark/pybench/openblas_wrap/meson.build",
"chars": 1216,
"preview": "# find numpy & f2py includes\ninc_numpy = run_command(py3,\n ['-c', 'import os; os.chdir(\"..\"); import numpy; print(numpy"
},
{
"path": "benchmark/pybench/scipy_openblas.pc",
"chars": 473,
"preview": "libdir=/home/br/repos/OpenBLAS/\nincludedir=/home/br/repos/OpenBLAS/\nopenblas_config= OpenBLAS 0.3.27 DYNAMIC_ARCH NO_AFF"
},
{
"path": "benchmark/rot.c",
"chars": 3731,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/rotm.c",
"chars": 3872,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/scal.c",
"chars": 3447,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/scripts/NUMPY/cgemm.py",
"chars": 1024,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_cgemm(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/cgemv.py",
"chars": 1018,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_cgemv(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/daxpy.py",
"chars": 977,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\nfrom scipy.linalg.blas i"
},
{
"path": "benchmark/scripts/NUMPY/ddot.py",
"chars": 936,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_ddot(N,l):\n\n\tA "
},
{
"path": "benchmark/scripts/NUMPY/deig.py",
"chars": 925,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_deig(N,l):\n\n\tA "
},
{
"path": "benchmark/scripts/NUMPY/dgemm.py",
"chars": 950,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_dgemm(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/dgemv.py",
"chars": 946,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_dgemv(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/dgesv.py",
"chars": 1002,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\nfrom scipy.linalg.lapack"
},
{
"path": "benchmark/scripts/NUMPY/dsolve.py",
"chars": 980,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_dsolve(N,l):\n\n\t"
},
{
"path": "benchmark/scripts/NUMPY/sdot.py",
"chars": 936,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_sdot(N,l):\n\n\tA "
},
{
"path": "benchmark/scripts/NUMPY/sgemm.py",
"chars": 950,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_sgemm(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/sgemv.py",
"chars": 946,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_sgemv(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/zgemm.py",
"chars": 1024,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_zgemm(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/NUMPY/zgemv.py",
"chars": 1018,
"preview": "#!/usr/bin/python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy.random import randn\n\ndef run_zgemv(N,l):\n\n\tA"
},
{
"path": "benchmark/scripts/OCTAVE/cgemm.m",
"chars": 935,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/cgemv.m",
"chars": 933,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/deig.m",
"chars": 870,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/dgemm.m",
"chars": 879,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/dgemv.m",
"chars": 877,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/dsolve.m",
"chars": 948,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/sgemm.m",
"chars": 879,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/sgemv.m",
"chars": 877,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/zgemm.m",
"chars": 935,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/OCTAVE/zgemv.m",
"chars": 933,
"preview": "#!/usr/bin/octave --silent \n\nnfrom = 128 ;\nnto = 2048;\nnstep = 128;\nloops = 1;\n\n\narg_list = argv();\nfor i = 1:nargin\n\n"
},
{
"path": "benchmark/scripts/R/deig.R",
"chars": 1033,
"preview": "#!/usr/bin/Rscript\n\nargv <- commandArgs(trailingOnly = TRUE)\n\nif (!is.null(options(\"matprod\")[[1]])) options(matprod = \""
},
{
"path": "benchmark/scripts/R/dgemm.R",
"chars": 1082,
"preview": "#!/usr/bin/Rscript\n\nargv <- commandArgs(trailingOnly = TRUE)\n\nif (!is.null(options(\"matprod\")[[1]])) options(matprod = \""
},
{
"path": "benchmark/scripts/R/dsolve.R",
"chars": 1061,
"preview": "#!/usr/bin/Rscript\n\nargv <- commandArgs(trailingOnly = TRUE)\n\nif (!is.null(options(\"matprod\")[[1]])) options(matprod = \""
},
{
"path": "benchmark/scripts/SCIPY/dsyrk.py",
"chars": 1231,
"preview": "#!/usr/bin/env python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy import zeros\nfrom numpy.random import ra"
},
{
"path": "benchmark/scripts/SCIPY/ssyrk.py",
"chars": 1231,
"preview": "#!/usr/bin/env python\n\nimport os\nimport sys\nimport time\nimport numpy\nfrom numpy import zeros\nfrom numpy.random import ra"
},
{
"path": "benchmark/smallscaling.c",
"chars": 5375,
"preview": "// run with OPENBLAS_NUM_THREADS=1 and OMP_NUM_THREADS=n\n#include <math.h>\n#include <stdlib.h>\n#include <stdio.h>\n#inclu"
},
{
"path": "benchmark/spmv.c",
"chars": 4155,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/spr.c",
"chars": 3613,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/spr2.c",
"chars": 3918,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/swap.c",
"chars": 3707,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/symm.c",
"chars": 3801,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/symv.c",
"chars": 4159,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/syr.c",
"chars": 3380,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/syr2.c",
"chars": 3862,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/syr2k.c",
"chars": 3818,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/syrk.c",
"chars": 3788,
"preview": "/***************************************************************************\nCopyright (c) 2014, 2023 The OpenBLAS Proje"
},
{
"path": "benchmark/tplot-header",
"chars": 2050,
"preview": "# **********************************************************************************\n# Copyright (c) 2014, The OpenBLAS "
},
{
"path": "benchmark/tpmv.c",
"chars": 4137,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/tpsv.c",
"chars": 4137,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/trmm.c",
"chars": 3765,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/trmv.c",
"chars": 4141,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/trsm.c",
"chars": 4008,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/trsv.c",
"chars": 4149,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/zdot-intel.c",
"chars": 3590,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "benchmark/zdot.c",
"chars": 3664,
"preview": "/***************************************************************************\nCopyright (c) 2014, The OpenBLAS Project\nAl"
},
{
"path": "c_check",
"chars": 15168,
"preview": "#!/bin/sh\n\n# Checking cross compile\nhostos=`uname -s | sed -e 's/\\-.*//'`\nhostarch=`uname -m | sed -e 's/i.86/x86/'`\nif "
},
{
"path": "c_check.pl",
"chars": 14798,
"preview": "#!/usr/bin/env perl\n\n#use File::Basename;\n# use File::Temp qw(tempfile);\n\n# Checking cross compile\n$hostos = `uname -s"
},
{
"path": "cblas.h",
"chars": 62004,
"preview": "/***************************************************************************\n * Copyright (c) 2025, The OpenBLAS Project"
},
{
"path": "cmake/OpenBLASConfig.cmake.in",
"chars": 2919,
"preview": "# OpenBLASConfig.cmake\n# --------------------\n#\n# OpenBLAS cmake module.\n# This module sets the following variables in y"
},
{
"path": "cmake/arch.cmake",
"chars": 5044,
"preview": "## Author: Hank Anderson <hank@statease.com>\n## Description: Ported from portion of OpenBLAS/Makefile.system\n## "
},
{
"path": "cmake/cc.cmake",
"chars": 14809,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "cmake/export.cmake",
"chars": 1819,
"preview": "\n#Only generate .def for dll on MSVC\nif(MSVC)\n\nset_source_files_properties(${OpenBLAS_DEF_FILE} PROPERTIES GENERATED 1)\n"
},
{
"path": "cmake/f_check.cmake",
"chars": 2041,
"preview": "##\n## Author: Hank Anderson <hank@statease.com>\n## Copyright: (c) Stat-Ease, Inc.\n## Created: 12/29/14\n## Last Modified:"
},
{
"path": "cmake/fc.cmake",
"chars": 9531,
"preview": "##\n## Author: Hank Anderson <hank@statease.com>\n## Description: Ported from portion of OpenBLAS/Makefile.system\n## "
},
{
"path": "cmake/kernel.cmake",
"chars": 11545,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "cmake/lapack.cmake",
"chars": 49835,
"preview": "# Sources for compiling lapack-netlib. Can't use CMakeLists.txt because lapack-netlib already has its own cmake files.\ni"
},
{
"path": "cmake/lapacke.cmake",
"chars": 61527,
"preview": "\nset(CSRC\n lapacke_cbbcsd.c\n lapacke_cbbcsd_work.c\n lapacke_cbdsqr.c\n lapacke_cbdsqr_work.c\n lapacke_cgbbrd.c\n lap"
},
{
"path": "cmake/openblas.pc.in",
"chars": 713,
"preview": "libdir=@CMAKE_INSTALL_FULL_LIBDIR@\nlibnameprefix=@LIBNAMEPREFIX@\nlibnamesuffix=@LIBNAMESUFFIX@\nlibsuffix=@SUFFIX64_UNDER"
},
{
"path": "cmake/os.cmake",
"chars": 2696,
"preview": "##\n## Author: Hank Anderson <hank@statease.com>\n## Description: Ported from portion of OpenBLAS/Makefile.system\n## "
},
{
"path": "cmake/prebuild.cmake",
"chars": 54364,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "cmake/system.cmake",
"chars": 30791,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "cmake/system_check.cmake",
"chars": 5316,
"preview": "##\n## Author: Hank Anderson <hank@statease.com>\n## Description: Ported from the OpenBLAS/c_check perl script.\n## "
},
{
"path": "cmake/utils.cmake",
"chars": 24962,
"preview": "###############################################################################\n# Copyright (c) 2025, The OpenBLAS Proje"
},
{
"path": "common.h",
"chars": 22049,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_alpha.h",
"chars": 5509,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_arm.h",
"chars": 4044,
"preview": "/*****************************************************************************\nCopyright (c) 2011-2015, The OpenBLAS Pro"
},
{
"path": "common_arm64.h",
"chars": 5675,
"preview": "/*****************************************************************************\nCopyright (c) 2011-2015, The OpenBLAS Pro"
},
{
"path": "common_b.h",
"chars": 3698,
"preview": "/***************************************************************************\n * Copyright (c) 2025, The OpenBLAS Project"
},
{
"path": "common_c.h",
"chars": 24701,
"preview": "#ifndef COMMON_C_H\n#define COMMON_C_H\n\n#ifndef DYNAMIC_ARCH\n\n#define\tCAMAX_K\t\t\tcamax_k\n#define\tCAMIN_K\t\t\tcamin_k\n#define"
},
{
"path": "common_csky.h",
"chars": 2047,
"preview": "/*****************************************************************************\nCopyright (c) 2011-2015, The OpenBLAS Pro"
},
{
"path": "common_d.h",
"chars": 15463,
"preview": "#ifndef COMMON_D_H\n#define COMMON_D_H\n\n#ifndef DYNAMIC_ARCH\n\n#define\tDAMAX_K\t\t\tdamax_k\n#define\tDAMIN_K\t\t\tdamin_k\n#define"
},
{
"path": "common_e2k.h",
"chars": 2228,
"preview": "/*****************************************************************************\nCopyright (c) 2011-2016, The OpenBLAS Pro"
},
{
"path": "common_ia64.h",
"chars": 10225,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_interface.h",
"chars": 50553,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_lapack.h",
"chars": 38921,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_level1.h",
"chars": 12510,
"preview": "/*********************************************************************/\n/* Copyright 2025 The OpenBLAS Project. "
},
{
"path": "common_level2.h",
"chars": 110097,
"preview": "/*********************************************************************/\n/* Copyright 2025 The OpenBLAS Project "
},
{
"path": "common_level3.h",
"chars": 170501,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_linux.h",
"chars": 4167,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_loongarch64.h",
"chars": 9711,
"preview": "/*****************************************************************************\nCopyright (c) 2011-2020, The OpenBLAS Pro"
},
{
"path": "common_macro.h",
"chars": 109081,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_mips.h",
"chars": 2810,
"preview": "/*****************************************************************************\nCopyright (c) 2016, The OpenBLAS Project\n"
},
{
"path": "common_mips64.h",
"chars": 8115,
"preview": "/*****************************************************************************\nCopyright (c) 2011-2014, The OpenBLAS Pro"
},
{
"path": "common_param.h",
"chars": 120235,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
},
{
"path": "common_power.h",
"chars": 18810,
"preview": "/*********************************************************************/\n/* Copyright 2009, 2010 The University of Texas "
}
]
// ... and 12346 more files (download for full content)
About this extraction
This page contains the full source code of the OpenMathLib/OpenBLAS GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 12546 files (174.8 MB), approximately 26.9M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.