754 Commits
Author SHA1 Message Date
Martin Kroeker 77affe1f15 Revert "Use QR for bidiagonal SVD with vectors in ?BDSDC (Reference-LAPACK PR 1300)"
apple m / build-windows (cmake, gfortran, 0, 0) (push) Canceled after 0s
apple m / build-windows (cmake, gfortran, 0, 1) (push) Canceled after 0s
apple m / build-windows (cmake, gfortran, 1, 0) (push) Canceled after 0s
apple m / build-windows (cmake, gfortran, 1, 1) (push) Canceled after 0s
apple m / build-windows (make, gfortran, 0, 0) (push) Canceled after 0s
apple m / build-windows (make, gfortran, 0, 1) (push) Canceled after 0s
apple m / build-windows (make, gfortran, 1, 0) (push) Canceled after 0s
apple m / build-windows (make, gfortran, 1, 1) (push) Canceled after 0s
apple m / xbuild-x86_64 (push) Canceled after 0s
apple m / xbuild-ios (push) Canceled after 0s
apple m / xbuild-ios32 (push) Canceled after 0s
c910v qemu test / TEST (riscv64-linux-gnu, NO_SHARED=1 TARGET=C910V, C910V, riscv64-unknown-linux-gnu) (push) Canceled after 0s
c910v qemu test / TEST (riscv64-linux-gnu, NO_SHARED=1 TARGET=RISCV64_GENERIC, RISCV64_GENERIC, riscv64-linux-gnu) (push) Canceled after 0s
Run codspeed benchmarks / benchmarks (make, gfortran, ubuntu-22.04, 3.12) (push) Canceled after 0s
continuous build / build (cmake, clang, flang, ubuntu-latest) (push) Canceled after 0s
continuous build / build (cmake, clang, gfortran, macos-latest) (push) Canceled after 0s
continuous build / build (cmake, clang, gfortran, ubuntu-24.04-arm) (push) Canceled after 0s
continuous build / build (cmake, clang, gfortran, ubuntu-latest) (push) Canceled after 0s
continuous build / build (cmake, clang-21, flang, ubuntu-latest) (push) Canceled after 0s
continuous build / build (cmake, clang-21, gfortran, ubuntu-24.04-arm) (push) Canceled after 0s
continuous build / build (cmake, clang-21, gfortran, ubuntu-latest) (push) Canceled after 0s
continuous build / build (cmake, gcc, flang, ubuntu-latest) (push) Canceled after 0s
continuous build / build (cmake, gcc, gfortran, ubuntu-24.04-arm) (push) Canceled after 0s
continuous build / build (cmake, gcc, gfortran, ubuntu-latest) (push) Canceled after 0s
continuous build / build (make, clang, flang, ubuntu-latest) (push) Canceled after 0s
continuous build / build (make, clang, gfortran, macos-latest) (push) Canceled after 0s
continuous build / build (make, clang, gfortran, ubuntu-24.04-arm) (push) Canceled after 0s
continuous build / build (make, clang, gfortran, ubuntu-latest) (push) Canceled after 0s
continuous build / build (make, clang-21, flang, ubuntu-latest) (push) Canceled after 0s
continuous build / build (make, clang-21, gfortran, ubuntu-24.04-arm) (push) Canceled after 0s
continuous build / build (make, clang-21, gfortran, ubuntu-latest) (push) Canceled after 0s
continuous build / build (make, gcc, flang, ubuntu-latest) (push) Canceled after 0s
continuous build / build (make, gcc, gfortran, ubuntu-24.04-arm) (push) Canceled after 0s
continuous build / build (make, gcc, gfortran, ubuntu-latest) (push) Canceled after 0s
continuous build / msys2 (None, mingw-w64-ucrt-x86_64-fc, int32, UCRT64, mingw-w64-ucrt-x86_64) (push) Canceled after 0s
continuous build / msys2 (Release, <nil>, int32, MINGW32, mingw-w64-i686) (push) Canceled after 0s
continuous build / msys2 (Release, mingw-w64-clang-x86_64-fc, int32, CLANG64, mingw-w64-clang-x86_64) (push) Canceled after 0s
continuous build / msys2 (Release, mingw-w64-clang-x86_64-fc, int64, -DBINARY=64 -DINTERFACE64=1, CLANG64, mingw-w64-clang-x86_64) (push) Canceled after 0s
continuous build / msys2 (Release, mingw-w64-ucrt-x86_64-fc, int32, UCRT64, mingw-w64-ucrt-x86_64) (push) Canceled after 0s
continuous build / msys2 (Release, mingw-w64-ucrt-x86_64-fc, int64, -DBINARY=64 -DINTERFACE64=1, UCRT64, mingw-w64-ucrt-x86_64) (push) Canceled after 0s
continuous build / linux_thread_stress (openmp) (push) Canceled after 0s
continuous build / linux_thread_stress (pthread) (push) Canceled after 0s
continuous build / linux_thread_sanitizer (push) Canceled after 0s
continuous build / linux_thread_sanitizer_openmp (push) Canceled after 0s
continuous build / msys2_thread_stress (push) Canceled after 0s
continuous build / cross_build (DYNAMIC_ARCH=1 TARGET=GENERIC, mips64el, mips64el-linux-gnuabi64) (push) Canceled after 0s
continuous build / cross_build (TARGET=EV4, alpha, alpha-linux-gnu) (push) Canceled after 0s
continuous build / cross_build (TARGET=MIPS1004K, mipsel, mipsel-linux-gnu) (push) Canceled after 0s
continuous build / cross_build (TARGET=RISCV64_GENERIC, riscv64, riscv64-linux-gnu) (push) Canceled after 0s
continuous build / neoverse_build (push) Canceled after 0s
continuous build / neoverse_n1_build (push) Canceled after 0s
continuous build / neoverse_n1_omp_build (push) Canceled after 0s
continuous build / neoverse_n1_ilp64_build (push) Canceled after 0s
harmonyos / build (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=GENERIC, DYNAMIC_ARCH, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA264, LA264, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA464, LA464, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA64_GENERIC, LA64_GENERIC, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON2K1000, LOONGSON2K1000, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON3R5, LOONGSON3R5, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSONGENERIC, LOONGSONGENERIC, loongarch64-linux-gnu) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=GENERIC, DYNAMIC_ARCH) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA264, LA264) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA464, LA464) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LA64_GENERIC, LA64_GENERIC) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON2K1000, LOONGSON2K1000) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSON3R5, LOONGSON3R5) (push) Canceled after 0s
loongarch64 clang qemu test / TEST (NO_SHARED=1 DYNAMIC_ARCH=1 TARGET=LOONGSONGENERIC, LOONGSONGENERIC) (push) Canceled after 0s
mips64 qemu test / TEST (NO_SHARED=1 TARGET=I6400, I6400, mipsisa64r6el-linux-gnuabi64) (push) Canceled after 0s
mips64 qemu test / TEST (NO_SHARED=1 TARGET=I6500, I6500, mipsisa64r6el-linux-gnuabi64) (push) Canceled after 0s
mips64 qemu test / TEST (NO_SHARED=1 TARGET=MIPS64_GENERIC, MIPS64_GENERIC, mips64el-linux-gnuabi64) (push) Canceled after 0s
mips64 qemu test / TEST (NO_SHARED=1 TARGET=P6600, P6600, mipsisa64r6el-linux-gnuabi64) (push) Canceled after 0s
mips64 qemu test / TEST (NO_SHARED=1 TARGET=SICORTEX, SICORTEX, mips64el-linux-gnuabi64) (push) Canceled after 0s
riscv64 zvl256b qemu test / TEST (TARGET=RISCV64_GENERIC BINARY=64 ARCH=riscv64 DYNAMIC_ARCH=1, rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64, DYNAMIC_ARCH=1) (push) Canceled after 0s
riscv64 zvl256b qemu test / TEST (TARGET=RISCV64_ZVL128B BINARY=64 ARCH=riscv64, rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=128,elen=64, RISCV64_ZVL128B) (push) Canceled after 0s
riscv64 zvl256b qemu test / TEST (TARGET=RISCV64_ZVL256B BINARY=64 ARCH=riscv64 BUILD_BFLOAT16=1 BUILD_HFLOAT16=1, rv64,g=true,c=true,v=true,vext_spec=v1.0,vlen=256,elen=64,zfh=true,zvfh=true,zvfbfwma=true, RISCV64_ZVL256B) (push) Canceled after 0s
2026-08-21 00:57:38 +02:00
David Heffernan ffe8b242c7 C_LAPACK: take the float format from <float.h> in dlamch/slamch
INSTALL/dlamch.c and INSTALL/slamch.c are f2c translations of the deprecated
dlamchf77.f and slamchf77.f, which determine the floating point format at run
time by probing in dlamc1/dlamc2 rather than reading it from the environment.
The current dlamch.f and slamch.f use the Fortran 90 inquiry intrinsics
(EPSILON, TINY, HUGE, DIGITS, MINEXPONENT, MAXEXPONENT, RADIX) instead, but f2c
cannot translate those, so the C LAPACK selected by NOFORTRAN=1 has been left
with the older probing implementation.

The probe is only correct if double intermediates are genuinely rounded to
double. That does not hold on x87. Building 32 bit for a target without SSE2,
so with -mfpmath=387, and with gcc 16, the intermediates stay in registers and
the probe measures the 80 bit register format: it reports emin/emax as
-16381/16384, and a mantissa width that follows the caller's x87 precision
control bits (64 at extended precision, 53 at double). Written back as doubles,
rmin underflows to 0 and rmax overflows to +Inf, so dlamch('S') and dlamch('U')
return 0 and dlamch('O') returns +Inf.

Everything that scales by those values is then wrong, mostly silently. The
first symptom to surface was a floating point exception rather than a wrong
answer: dsbevx computes

    safmin = dlamch('S')
    eps    = dlamch('P')
    smlnum = safmin / eps
    bignum = 1 / smlnum

so a zero safe minimum makes smlnum zero and the next line divides by zero.
Callers that unmask the divide by zero exception get a hard failure there;
callers that do not get whatever the wrong scaling produces.

Replace the probe with the <float.h> constants, mirroring the values the
current dlamch.f and slamch.f return. This fixes two lesser problems at the
same time: rmach was left uninitialised when cmach matched nothing, where
dlamch.f returns zero; and the cached static results made both routines
unsafe to call concurrently on first use.

dlamc1-dlamc5 and slamc1-slamc5 are left in place. They become unreachable
from dlamch/slamch, but dlamc3 and slamc3 have callers of their own in dlaed3,
dlaed9, dlals0, dlasd3, dlasd8 and their complex equivalents, where they serve
as optimiser barriers.
2026-08-17 10:55:05 +01:00
Martin Kroeker 05518e0f11 Merge pull request #5969 from martin-frbg/lapack1346
Raise SE2,SEP test thresholds to account for xSTEINs orthogonality guarantee (Reference-LAPACK PR 1346)
2026-08-09 00:28:18 +02:00
Martin Kroeker 7fdb527565 Merge pull request #5968 from martin-frbg/lapack1342
Fix invalid reads in the single&double precision DMD tests (Reference-LAPACK PR 1342)
2026-08-09 00:27:58 +02:00
Martin Kroeker 330063dec8 Raise threshold to account for orthogonality guarantee (Reference-LAPACK PR 1346) 2026-08-08 18:25:41 +02:00
Martin Kroeker 2f24d51c5d Raise threshold to accound for orthogonality guarantee (Reference-LAPACK PR 1346) 2026-08-08 18:24:25 +02:00
Martin Kroeker b22e3244e4 Fix read beyond the array bounds (Reference-LAPACK PR 1342) 2026-08-08 18:17:04 +02:00
Martin Kroeker 8554a7e586 Fix read beyond the array bounds (Reference-LAPACK PR 1342) 2026-08-08 18:15:49 +02:00
Martin Kroeker 4d35c91404 Add missing ABS to the error metric (Reference-LAPACK PR 1338) 2026-08-08 18:06:18 +02:00
Martin Kroeker a9a238157b Add missing ABS to the error metric (Reference-LAPACK PR 1338) 2026-08-08 18:04:28 +02:00
Martin Kroeker 8766886cfc Merge pull request #5577 from mattip/attrib-hidden
add visibility=default to exported functions, visibility=hidden to most assembler
2026-07-24 00:16:00 +02:00
Martin Kroeker 0ddb20ffea Merge pull request #5940 from martin-frbg/lapack1332
Fix memory freeing on error paths of LAPACKE C/ZGEJSV,C/ZGESVDX (Reference-LAPACK PR 1332)
2026-07-23 10:34:28 +02:00
Martin Kroeker c3de327dd5 Add CX factorization (expert) routines ?GECXX (Reference-LAPACK PR 1161) (#5938)
* Add CX factorization (expert) routines ?GECXX (Reference-LAPACK PR 1161)
2026-07-23 00:02:28 +02:00
Martin Kroeker 251169b710 Fix invalid deallocations on error paths (Reference-LAPACK PR 1332) 2026-07-22 23:59:08 +02:00
Martin Kroeker b6df159a67 Avoid computing ONE/HUGE unless needed (Reference-LAPACK PR 1331) 2026-07-22 17:49:20 +02:00
Martin Kroeker 63ad298a67 Merge branch 'develop' into attrib-hidden 2026-07-21 20:00:16 +02:00
Martin Kroeker 1c6f5f4efd Use QR for bidiagonal SVD with vectors in ?BDSDC (Reference-LAPACK PR 1300) 2026-07-21 18:50:28 +02:00
moluopro 14d78d31c8 Remove unused misspelled DBDSDC source copy 2026-07-19 11:33:01 +08:00
moluopro e3b9b82636 Remove unused misspelled SBDSDC source copy 2026-07-19 11:32:53 +08:00
Martin Kroeker 53b14986de Avoid large intermediates in (C/Z)LARTG (Reference-LAPACK PR 1245) 2026-07-15 20:59:17 +02:00
Martin Kroeker 75b8a2ce93 Fix parameter queries for TZRZF/UNMRZ in ?GELSY (Reference-LAPACK PR 1289&1325) 2026-07-14 22:14:02 +02:00
Martin Kroeker 036e835019 Merge pull request #5912 from martin-frbg/lapack1288
Fix seed advancement in SLARUV/DLARUV (Reference-LAPACK PR 1288)
2026-07-14 20:30:43 +02:00
Martin Kroeker fd88cac200 Merge pull request #5911 from martin-frbg/lapack1305
Replace HUGE intrinsic in ?TGSJA for consistency (Reference-LAPACK PR 1305)
2026-07-14 17:58:23 +02:00
Martin Kroeker 6b1d101317 Fix seed advancement on rejected uniform deviate (Reference-LAPACK PR 1288) 2026-07-13 19:56:29 +02:00
Martin Kroeker cdde6e8c4d Replace HUGE intrinsic (Reference-LAPACK PR 1305) 2026-07-13 19:50:05 +02:00
Martin Kroeker 5e517085c5 Fix test failures when NB=1 with M=N (Reference-LAPACK PR 1298) 2026-07-13 19:40:43 +02:00
moluopro 0f68da835c Remove misplaced LAPACKE GESVDQ wrapper sources
These stale duplicate sources are not referenced by the build. The canonical implementations remain under lapack-netlib/LAPACKE/src.

Signed-off-by: moluopro <moluopro@qq.com>
2026-07-13 12:40:03 +08:00
Martin Kroeker 2b11a16f56 Fix row-major copy corrupting the other triangle (Reference-LAPACK PR 1318) 2026-07-07 10:55:25 +02:00
Martin Kroeker c61f95c8d3 Merge pull request #5888 from martin-frbg/lapack1297
Relax eigenvalue consistency criterion in testsuite (Reference-LAPACK PR 1297)
2026-07-06 16:34:53 +02:00
Martin Kroeker a2f9fc83df Merge pull request #5885 from martin-frbg/lapack1317
Increase deflation tolerance in ?LAED to match recent changes in ?SLASD  (Reference-LAPACK PR 1317)
2026-07-06 13:09:16 +02:00
Martin Kroeker aa8b19de74 Relax eigenvalue consistency test (Reference-LAPACK PR 1297) 2026-07-06 09:43:58 +02:00
Martin Kroeker 882526a408 Merge pull request #5886 from martin-frbg/lapack1290
Avoid intermediate overflow in ?LARFGP (Reference-LAPACK PR 1290)
2026-07-06 08:59:14 +02:00
Martin Kroeker f3f5fd9116 Avoid intermediate overflow (Reference-LAPACK PR 1290) 2026-07-05 17:43:58 +02:00
Martin Kroeker db20661747 Increase deflation tolerance to match recent ?SLASD changes (Reference-LAPACK PR 1317) 2026-07-05 17:37:17 +02:00
Martin Kroeker 5aa157c2cf Use QR instead of D&C for bidiagonal SVD with vectors (Reference-LAPACK PR 1300) 2026-07-04 23:26:22 +02:00
Martin Kroeker 0f51e2d22f Merge pull request #5871 from martin-frbg/lapack1163
Add non-trivial terminating case to ?LARFT (Reference-LAPACK PR 1163)
2026-07-01 00:42:11 +02:00
Martin Kroeker a782e10a22 Merge pull request #5858 from martin-frbg/lapack1286
Increase tolerance in ?LASD2 to improve ?BDSDC stability (Reference-LAPACK PR 1286)
2026-07-01 00:41:22 +02:00
Martin Kroeker 66d041d75f Merge pull request #5863 from martin-frbg/lapack1307
Change description of QMAX in ?LASQ3 to in/out (Reference-LAPACK PR 1307)
2026-06-30 22:48:36 +02:00
Martin Kroeker a22ee97671 Merge branch 'OpenMathLib:develop' into lapack1286 2026-06-30 19:32:57 +02:00
Martin Kroeker 4ca72cb7a4 Add f2c conversions of ?larft_lvl2 and update ?larft (Reference-LAPACK PR 1163) 2026-06-30 19:27:11 +02:00
Martin Kroeker 9cc2702c0f Add the LARFT_LVL2 functions from Reference-LAPACK PR 1163 2026-06-27 20:10:05 +02:00
Martin Kroeker fd89e78ff3 Add non-trivial terminating case for LARFT (Reference-LAPACK PR 1163) 2026-06-27 20:07:45 +02:00
Martin Kroeker b997290389 Merge pull request #5862 from martin-frbg/lapack1293
Scale convergence thresholds in ?BBCSD to fix accuracy (Reference-LAPACK PR 1293)
2026-06-27 11:49:15 +02:00
Martin Kroeker 3f6241b8db Merge pull request #5865 from martin-frbg/lapack1315
Fix handling of negative increments in ?LARF/?LARF1F/?LARF1L (Reference-LAPACK PR 1315)
2026-06-26 22:50:38 +02:00
Martin Kroeker cd395c801a Merge pull request #5864 from martin-frbg/lapack1309
Fix bad scaling in ?LARFF causing slow DSYEVR/ZHEEVR (Reference-LAPACK PR 1309)
2026-06-26 22:50:15 +02:00
Martin Kroeker 7370b520d2 Merge pull request #5857 from martin-frbg/lapack1285
Fix premature return before fallback in ?BDSQR (Reference-LAPACK PR 1285)
2026-06-26 20:45:56 +02:00
Martin Kroeker 132f2a3ebd Merge pull request #5855 from martin-frbg/lapack1283
Avoid intermediate overflows in GEJSV,GESVJ,GESVDX,GEDMD (Reference-LAPACK PR 1283)
2026-06-26 20:45:23 +02:00
Martin Kroeker 100988fddd Merge branch 'OpenMathLib:develop' into lapack1286 2026-06-25 15:47:50 +02:00
Martin Kroeker 3cdf5dcf0b Merge pull request #5860 from martin-frbg/lapack1291
Handle degenerate cases in OR/UNCSD2BY1 (Reference-LAPACK PR 1291)
2026-06-25 15:40:27 +02:00
Martin Kroeker 56b08939f5 Merge pull request #5861 from martin-frbg/lapack1292
Fix workspace for tiny inputs in (ORM/UNM)(L/R)Q and Q(L/R) (Reference-LAPACK PR 1292)
2026-06-25 14:06:48 +02:00