Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sparse/umfpack.jl: correct fallbacks for lufact
The new fallback logic for `lufact(A::SparseMatrixCSC{T}` is: - If `T` is `Float16` or `Float32}`, convert `A` to `SparseMatrixCSC{Float64}` before calling UMFPACK - If `T` is `Complex32` or `Complex64`, convert `A` to `SparseMatrixCSC{Complex128}` before calling UMPACK - If `T` is any other `T<:AbstractFloat`, throw an `ArgumentError`, telling the user to do `lufact(float(A))` to round `T` explicitly, or `lufact(full(A))` to use the generic routine. - If `T` is any other eltype (e.g. `Int`), convert `A` to `float(A)` Closes JuliaLang#15099 Also creates new copy of docstring specifically for sparse `lufact`, documenting that it creates a copy if not of eltype `Complex128` or `Float64`. Includes minor changes: - `Union{Int32}` -> `Int32` - Use default value for `show_umf_ctrl` and `show_umf_info` - `size` now throws `ArgumentError` instead of `ErrorException`
- Loading branch information