# Broken \`eigen\` in DoubleFloats?

**URL:** <https://discourse.julialang.org/t/broken-eigen-in-doublefloats/75946>\
**Category:** General Usage\
**Tags:** doublefloats\
**Created:** [February 7, 2022, 11:07am UTC](https://discourse.julialang.org/t/broken-eigen-in-doublefloats/75946 "2022-02-07T11:07:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![swishmas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/swishmas/32/8803_2.png) [@swishmas](https://discourse.julialang.org/u/swishmas)\
**Post date:** [February 7, 2022, 11:07am UTC](https://discourse.julialang.org/t/broken-eigen-in-doublefloats/75946/1 "2022-02-07T11:07:44Z")

</div>

I wanted to try some additional precision in julia and I found the DoubleFloats package.

I ran the small example but received an error when using the `eigen` function

```julia
#using LinearAlgebra #did not change the result
using DoubleFloats

P = rand(Double64,10,10)
B = P + P'
svd(B) #works!
eigen(B) #does not work!

```

The error message that I received was

```julia
julia> DoubleFloats.eigen(B)
ERROR: MethodError: no method matching eigen!(::Matrix{Double64}; permute=true, scale=true, sortby=LinearAlgebra.eigsortby)
Closest candidates are:
  eigen!(::StridedMatrix{T}; permute, scale, sortby) where T<:Union{Float32, Float64} at /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:148
  eigen!(::StridedMatrix{T}; permute, scale, sortby) where T<:Union{ComplexF32, ComplexF64} at /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:171
  eigen!(::StridedMatrix{T}, ::StridedMatrix{T}; sortby) where T<:Union{Float32, Float64} at /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:427 got unsupported keyword arguments "permute", "scale"
  ...
Stacktrace:
 [1] eigen(A::Matrix{Double64}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
   @ LinearAlgebra /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:237
 [2] eigen(A::Matrix{Double64})
   @ LinearAlgebra /Applications/Julia-1.7.app/Contents/Resources/julia/share/julia/stdlib/v1.7/LinearAlgebra/src/eigen.jl:235
 [3] top-level scope
   @ REPL[5]:1

```

---

<div class="post-metadata">

**Author:** ![Ralph\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ralph_smith/32/10344_2.png) [@Ralph\_Smith](https://discourse.julialang.org/u/Ralph_Smith)\
**Post date:** [February 7, 2022, 2:41pm UTC](https://discourse.julialang.org/t/broken-eigen-in-doublefloats/75946/2 "2022-02-07T14:41:19Z")

</div>

You can get this functionality by adding the `GenericSchur` package to your project. (It provides methods for eigen-analysis with generic floating point types.) It is not brought in automatically because of possible problems associated with type piracy.
