How to do high precision linear algebra with `exp` related functions?

Is there a library that supports exp, sin, cos, etc., on matrices with precisions higher than Float64? Here’s my test code:

julia> A = rand(BigFloat, 10, 10);

julia> exp(A)
ERROR: MethodError: no method matching exp!(::Matrix{BigFloat})
The function `exp!` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  exp!(::StridedMatrix{T}) where T<:Union{Float32, Float64, ComplexF64, ComplexF32}
   @ LinearAlgebra ~/.asdf/installs/julia/1.11.1/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:677

Stacktrace:
 [1] exp(A::Matrix{BigFloat})
   @ LinearAlgebra ~/.asdf/installs/julia/1.11.1/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:622
 [2] top-level scope
   @ REPL[26]:1

julia> using GenericLinearAlgebra

julia> exp(A)
ERROR: MethodError: no method matching exp!(::Matrix{BigFloat})
The function `exp!` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  exp!(::StridedMatrix{T}) where T<:Union{Float32, Float64, ComplexF64, ComplexF32}
  @ LinearAlgebra ~/.asdf/installs/julia/1.11.1/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:677

Stacktrace:
[1] exp(A::Matrix{BigFloat})
  @ LinearAlgebra ~/.asdf/installs/julia/1.11.1/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:622
[2] top-level scope
  @ REPL[28]:1

julia> using Quadmath

julia> A = rand(Float128, 10, 10);

julia> exp(A)
ERROR: MethodError: no method matching exp!(::Matrix{Float128})
The function `exp!` exists, but no method is defined for this combination of argument types.

Closest candidates are:
  exp!(::StridedMatrix{T}) where T<:Union{Float32, Float64, ComplexF64, ComplexF32}
  @ LinearAlgebra ~/.asdf/installs/julia/1.11.1/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:677

Stacktrace:
[1] exp(A::Matrix{Float128})
  @ LinearAlgebra ~/.asdf/installs/julia/1.11.1/share/julia/stdlib/v1.11/LinearAlgebra/src/dense.jl:622
[2] top-level scope
  @ REPL[31]:1

Maybe this one?

1 Like

It’s working! Thanks!