https://github.com/JuliaLang/julia
Revision 681816cedf610ebc2e90d2fd499a57b8d3fac83a authored by Jishnu Bhattacharya on 14 January 2024, 15:03:44 UTC, committed by GitHub on 14 January 2024, 15:03:44 UTC
This is an attempt at resolving
https://github.com/JuliaLang/julia/issues/46636. Since each LAPACK
function generally has a specific meaning attached to a positive error
code, this PR tries to specialize `chklapackerror` for the caller to
throw a more informative error instead of a `LAPACKException`. For
example:
```julia
julia> U = UpperTriangular([1 2; 0 0])
2×2 UpperTriangular{Int64, Matrix{Int64}}:
 1  2
 ⋅  0

julia> inv(U)
ERROR: SingularException(2)
[...]
```
Currently, I've only specialized it for `trtrs!`, but if this seems
reasonable, I'll add others.

Functions to be implemented:

- [ ] `gbtrf`
- [ ] `gbtrs`
- [ ] `gebal!`
- [ ] `gebak!`
- [ ] `gebrd!`
- [ ] `gelqf!`
- [ ] `geqlf!`
- [ ] `geqp3!`
- [ ] `geqrt!`
- [ ] `geqrt3!`
- [ ] `geqrf!`
- [ ] `gerqf!`
- [ ] `getrf!`
- [ ] `tzrzf!`
- [ ] `ormrz!`
- [ ] `gels!`
- [ ] `gesv!`
- [ ] `getrs!`
- [ ] `getri!`
- [ ] `gesvx!`
- [ ] `gelsd!`
- [ ] `gelsy!`
- [ ] `gglse!`
- [ ] `geev!`
- [ ] `gesdd!`
- [ ] `gesvd!`
- [ ] `ggsvd!`
- [ ] `ggsvd3!`
- [ ] `geevx!`
- [ ] `ggev!`
- [ ] `ggev3!`
- [ ] `gtsv!`
- [ ] `gttrf!`
- [ ] `gttrs!`
- [ ] `orglq!`
- [ ] `orgqr!`
- [ ] `orgql!`
- [ ] `orgrq!`
- [ ] `ormlq!`
- [ ] `ormqr!`
- [ ] `ormql!`
- [ ] `ormrq!`
- [ ] `gemqrt!`
- [ ] `potrs!`
- [ ] `ptsv!`
- [ ] `pttrf!`
- [ ] `pttrs!`
- [ ] `trtri!`
- [x] `trtrs!`
- [ ] `trcon!`
- [ ] `trevc!`
- [ ] `trrfs!`
- [ ] `stev!`
- [ ] `stebz!`
- [ ] `stegr!`
- [ ] `stein!`
- [ ] `syconv!`
- [ ] `sytrs!`
- [ ] `sytrs_rook!`
- [ ] `syconvf_rook!`
- [ ] `hesv!`
- [ ] `hetri!`
- [ ] `hetrs!`
- [ ] `hesv_rook!`
- [ ] `hetri_rook!`
- [ ] `hetrs_rook!`
- [ ] `sytri!`
- [ ] `sytri_rook!`
- [ ] `syconvf_rook!`
- [ ] `syev!`
- [ ] `syevr!`
- [ ] `syevd!`
- [ ] `bdsqr!`
- [ ] `bdsdc!`
- [ ] `gecon!`
- [ ] `gehrd!`
- [ ] `orghr!`
- [ ] `ormhr!`
- [ ] `hseqr!`
- [ ] `hetrd!`
- [ ] `ormtr!`
- [ ] `gees!`
- [ ] `gges!`
- [ ] `gges3!`
- [ ] `trexc!`
- [ ] `trsen!`
- [ ] `tgsen!`
- [ ] `trsyl!`
1 parent eadec43
History
Tip revision: 681816cedf610ebc2e90d2fd499a57b8d3fac83a authored by Jishnu Bhattacharya on 14 January 2024, 15:03:44 UTC
[WIP] Specialize `chklapackerror` to improve error messages (#51645)
Tip revision: 681816c
File Mode Size
clangsa
flisp
jsvm-emscripten
support
.gitignore -rw-r--r-- 376 bytes
APInt-C.cpp -rw-r--r-- 15.8 KB
APInt-C.h -rw-r--r-- 5.2 KB
Makefile -rw-r--r-- 31.5 KB
abi_aarch64.cpp -rw-r--r-- 15.6 KB
abi_arm.cpp -rw-r--r-- 9.2 KB
abi_llvm.cpp -rw-r--r-- 2.4 KB
abi_ppc64le.cpp -rw-r--r-- 6.2 KB
abi_win32.cpp -rw-r--r-- 3.0 KB
abi_win64.cpp -rw-r--r-- 3.0 KB
abi_x86.cpp -rw-r--r-- 3.3 KB
abi_x86_64.cpp -rw-r--r-- 8.7 KB
aotcompile.cpp -rw-r--r-- 85.2 KB
array.c -rw-r--r-- 12.7 KB
ast.c -rw-r--r-- 54.9 KB
ast.scm -rw-r--r-- 21.9 KB
bin2hex.scm -rw-r--r-- 388 bytes
builtin_proto.h -rw-r--r-- 2.1 KB
builtins.c -rw-r--r-- 83.7 KB
ccall.cpp -rw-r--r-- 90.4 KB
ccalllazybar.c -rw-r--r-- 234 bytes
ccalllazyfoo.c -rw-r--r-- 156 bytes
ccalltest.c -rw-r--r-- 24.1 KB
ccalltest_common.h -rw-r--r-- 779 bytes
cgmemmgr.cpp -rw-r--r-- 30.5 KB
cgutils.cpp -rw-r--r-- 191.1 KB
codegen-stubs.c -rw-r--r-- 6.0 KB
codegen.cpp -rw-r--r-- 430.0 KB
common_symbols1.inc -rw-r--r-- 2.0 KB
common_symbols2.inc -rw-r--r-- 5.6 KB
coverage.cpp -rw-r--r-- 7.2 KB
crc32c-tables.c -rw-r--r-- 43.4 KB
crc32c.c -rw-r--r-- 19.9 KB
datatype.c -rw-r--r-- 76.3 KB
debug-registry.h -rw-r--r-- 4.7 KB
debuginfo.cpp -rw-r--r-- 60.9 KB
debuginfo.h -rw-r--r-- 697 bytes
disasm.cpp -rw-r--r-- 48.4 KB
dlload.c -rw-r--r-- 17.0 KB
features_aarch32.h -rw-r--r-- 1.1 KB
features_aarch64.h -rw-r--r-- 4.6 KB
features_x86.h -rw-r--r-- 4.1 KB
file_constants.h -rw-r--r-- 2.1 KB
gc-alloc-profiler.cpp -rw-r--r-- 4.7 KB
gc-alloc-profiler.h -rw-r--r-- 1.7 KB
gc-debug.c -rw-r--r-- 42.0 KB
gc-heap-snapshot.cpp -rw-r--r-- 22.2 KB
gc-heap-snapshot.h -rw-r--r-- 5.7 KB
gc-page-profiler.c -rw-r--r-- 4.8 KB
gc-page-profiler.h -rw-r--r-- 2.1 KB
gc-pages.c -rw-r--r-- 6.3 KB
gc-stacks.c -rw-r--r-- 9.6 KB
gc.c -rw-r--r-- 166.6 KB
gc.h -rw-r--r-- 21.6 KB
gen_sysimg_symtab.jl -rw-r--r-- 1.8 KB
genericmemory.c -rw-r--r-- 25.4 KB
gf.c -rw-r--r-- 171.1 KB
iddict.c -rw-r--r-- 6.2 KB
idset.c -rw-r--r-- 3.9 KB
init.c -rw-r--r-- 31.2 KB
interpreter.c -rw-r--r-- 33.8 KB
intrinsics.cpp -rw-r--r-- 71.5 KB
intrinsics.h -rw-r--r-- 3.1 KB
ircode.c -rw-r--r-- 43.0 KB
jitlayers.cpp -rw-r--r-- 97.5 KB
jitlayers.h -rw-r--r-- 22.1 KB
jl_exported_data.inc -rw-r--r-- 4.5 KB
jl_exported_funcs.inc -rw-r--r-- 16.7 KB
jl_uv.c -rw-r--r-- 35.9 KB
jlapi.c -rw-r--r-- 32.6 KB
jlfrontend.scm -rw-r--r-- 9.6 KB
jloptions.c -rw-r--r-- 39.0 KB
jloptions.h -rw-r--r-- 1.6 KB
jltypes.c -rw-r--r-- 141.1 KB
julia-parser.scm -rw-r--r-- 112.8 KB
julia-syntax.scm -rw-r--r-- 237.7 KB
julia.expmap.in -rw-r--r-- 933 bytes
julia.h -rw-r--r-- 110.5 KB
julia_assert.h -rw-r--r-- 1.1 KB
julia_atomics.h -rw-r--r-- 12.6 KB
julia_fasttls.h -rw-r--r-- 1.8 KB
julia_gcext.h -rw-r--r-- 6.8 KB
julia_internal.h -rw-r--r-- 78.7 KB
julia_locks.h -rw-r--r-- 3.5 KB
julia_threads.h -rw-r--r-- 13.6 KB
llvm-alloc-helpers.cpp -rw-r--r-- 15.8 KB
llvm-alloc-helpers.h -rw-r--r-- 5.5 KB
llvm-alloc-opt.cpp -rw-r--r-- 49.3 KB
llvm-codegen-shared.h -rw-r--r-- 19.7 KB
llvm-cpufeatures.cpp -rw-r--r-- 3.9 KB
llvm-demote-float16.cpp -rw-r--r-- 7.8 KB
llvm-final-gc-lowering.cpp -rw-r--r-- 10.7 KB
llvm-gc-invariant-verifier.cpp -rw-r--r-- 6.9 KB
llvm-julia-licm.cpp -rw-r--r-- 17.0 KB
llvm-julia-passes.inc -rw-r--r-- 1.3 KB
llvm-late-gc-lowering.cpp -rw-r--r-- 123.4 KB
llvm-lower-handlers.cpp -rw-r--r-- 8.9 KB
llvm-muladd.cpp -rw-r--r-- 3.4 KB
llvm-multiversioning.cpp -rw-r--r-- 41.8 KB
llvm-pass-helpers.cpp -rw-r--r-- 12.4 KB
llvm-pass-helpers.h -rw-r--r-- 5.5 KB
llvm-propagate-addrspaces.cpp -rw-r--r-- 11.7 KB
llvm-ptls.cpp -rw-r--r-- 15.8 KB
llvm-remove-addrspaces.cpp -rw-r--r-- 15.2 KB
llvm-remove-ni.cpp -rw-r--r-- 980 bytes
llvm-simdloop.cpp -rw-r--r-- 9.4 KB
llvm-version.h -rw-r--r-- 837 bytes
llvm_api.cpp -rw-r--r-- 5.1 KB
llvmcalltest.cpp -rw-r--r-- 2.0 KB
mach_excServer.c -rw-r--r-- 30.5 KB
macroexpand.scm -rw-r--r-- 27.1 KB
match.scm -rw-r--r-- 9.8 KB
method.c -rw-r--r-- 54.2 KB
mk_julia_flisp_boot.scm -rw-r--r-- 137 bytes
module.c -rw-r--r-- 36.6 KB
mtarraylist.c -rw-r--r-- 2.5 KB
opaque_closure.c -rw-r--r-- 8.3 KB
options.h -rw-r--r-- 5.4 KB
passes.h -rw-r--r-- 5.9 KB
pipeline.cpp -rw-r--r-- 42.0 KB
precompile.c -rw-r--r-- 7.3 KB
precompile_utils.c -rw-r--r-- 11.7 KB
processor.cpp -rw-r--r-- 32.9 KB
processor.h -rw-r--r-- 12.4 KB
processor_arm.cpp -rw-r--r-- 68.8 KB
processor_fallback.cpp -rw-r--r-- 6.1 KB
processor_x86.cpp -rw-r--r-- 42.5 KB
rtutils.c -rw-r--r-- 54.2 KB
runtime_ccall.cpp -rw-r--r-- 11.2 KB
runtime_intrinsics.c -rw-r--r-- 63.1 KB
safepoint.c -rw-r--r-- 15.9 KB
scheduler.c -rw-r--r-- 23.4 KB
serialize.h -rw-r--r-- 3.7 KB
signal-handling.c -rw-r--r-- 16.2 KB
signals-mach.c -rw-r--r-- 29.5 KB
signals-unix.c -rw-r--r-- 39.1 KB
signals-win.c -rw-r--r-- 18.9 KB
simplevector.c -rw-r--r-- 2.9 KB
smallintset.c -rw-r--r-- 7.3 KB
stackwalk.c -rw-r--r-- 46.1 KB
staticdata.c -rw-r--r-- 162.8 KB
staticdata_utils.c -rw-r--r-- 53.7 KB
subtype.c -rw-r--r-- 186.6 KB
symbol.c -rw-r--r-- 5.1 KB
sys.c -rw-r--r-- 21.5 KB
task.c -rw-r--r-- 68.6 KB
threading.c -rw-r--r-- 30.7 KB
threading.h -rw-r--r-- 795 bytes
timing.c -rw-r--r-- 22.7 KB
timing.h -rw-r--r-- 14.0 KB
toplevel.c -rw-r--r-- 41.2 KB
typemap.c -rw-r--r-- 66.7 KB
uprobes.d -rw-r--r-- 1.5 KB
utils.scm -rw-r--r-- 3.3 KB
uv_constants.h -rw-r--r-- 783 bytes
win32_ucontext.c -rw-r--r-- 2.9 KB
win32_ucontext.h -rw-r--r-- 639 bytes
work-stealing-queue.h -rw-r--r-- 3.0 KB

back to top