Giter Club home page Giter Club logo

arpack.jl's Introduction

Arpack

CI

Julia wrapper for the arpack library designed to solve large-scale eigenvalue problems.

Installation

Install Arpack.jl through the Julia package manager:

julia> Pkg.add("Arpack")

Alternate packages

Users running into issues with this package may want to try KrylovKit.jl or ArnoldiMethod.jl.

arpack.jl's People

Contributors

andreasnoack avatar ararslan avatar blegat avatar dahong67 avatar dehann avatar dependabot[bot] avatar dkarrasch avatar fredrikekre avatar haampie avatar jarlebring avatar jeffbezanson avatar joshpoll avatar juliatagbot avatar kristofferc avatar lostella avatar mortenpi avatar nalimilan avatar petrkryslucsd avatar ranocha avatar rfourquet avatar sacha0 avatar simonbyrne avatar staticfloat avatar stefankarpinski avatar tanmaykm avatar thisrod avatar tomhaber avatar viralbshah avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

arpack.jl's Issues

Installation failure on Ubuntu 14.04

I have tried to build Arpack v0.3.0 and the master branch from the repository on our server running Ubuntu 14.04. In both cases the build fails with messages

  Building Arpack ────────── `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ┌ Warning: Cannot make sense of autodetected libstdc++ ABI version ('3.4.0')
│ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/1nGWd/src/PlatformNames.jl:622
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz to /workspace/bates/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/workspace/bates/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /workspace/bates/.julia/packages/BinaryProvider/1nGWd/src/Products.jl:408
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1041
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:388
│  [9] top-level scope at none:0in expression starting at /workspace/bates/.julia/packages/Arpack/UiiMc/deps/build.jl:74
[10:28:58] ######################################################################## 100.0%
└ @ Pkg.Operations ~/git/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1069

I used a locally compiled gcc

bates@marzano01:~/.julia/packages/Arpack/ukx3M/deps$ gcc --version
gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

to build Julia v1.0.1 so that I could link it against MKL

$ echo $LD_LIBRARY_PATH
/workspace/software/mkl_2019.0.117/compilers_and_libraries_2019.0.117/linux/compiler/lib/intel64_lin:/workspace/software/mkl_2019.0.117/compilers_and_libraries_2019.0.117/linux/tbb/lib/intel64_lin/gcc4.7:/workspace/software/mkl_2019.0.117/compilers_and_libraries_2019.0.117/linux/compiler/lib/intel64_lin:/workspace/software/mkl_2019.0.117/compilers_and_libraries_2019.0.117/linux/mkl/lib/intel64_lin

The download appears to have been successful

$ ls -la packages/Arpack/ukx3M/deps/usr/downloads/
total 164
drwxrwxr-x 2 bates bates   4096 Oct 18 10:31 .
drwxrwxr-x 7 bates bates   4096 Oct  3 11:01 ..
-rw-rw-r-- 1 bates bates 148737 Oct 18 10:31 Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz
-rw-rw-r-- 1 bates bates     64 Oct 18 10:31 Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz.sha256

and the library is installed

$ ls -la packages/Arpack/ukx3M/deps/usr/lib
total 384
drwxr-xr-x 3 bates bates   4096 Oct  3 11:01 .
drwxrwxr-x 7 bates bates   4096 Oct  3 11:01 ..
drwxr-xr-x 2 bates bates   4096 Oct  3 11:01 cmake
lrwxrwxrwx 1 bates bates     14 Oct  3 11:01 libarpack.so -> libarpack.so.2
lrwxrwxrwx 1 bates bates     18 Oct  3 11:01 libarpack.so.2 -> libarpack.so.2.0.0
-rwxr-xr-x 1 bates bates 374928 Oct  3 11:01 libarpack.so.2.0.0

but it appears that this download has been linked against libopenblas64

$ ldd packages/Arpack/ukx3M/deps/usr/lib/libarpack.so.2.0.0 
	linux-vdso.so.1 =>  (0x00007ff6de7f6000)
	libopenblas64_.so.0 => not found
	libgfortran.so.5 => not found
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff6de079000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff6dde63000)
	libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007ff6ddc27000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff6dd85e000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff6de5d6000)

Is there a way that I can force a build of libarpack from sources?

Error building Arpack

I get an error when trying to build Arpack:

Building Arpack → ~/.julia/packages/Arpack/UiiMc/deps/build.log
┌ Error: Error building Arpack:
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz to /home/seknappe/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/seknappe/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│ [1] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/seknappe/.julia/packages/BinaryProvider/TcAwt/src/Products.jl:414
│ [2] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│ [3] top-level scope at none:0
│ [4] include(::String) at ./client.jl:403
│ [5] top-level scope at none:0
│ in expression starting at /home/seknappe/.julia/packages/Arpack/UiiMc/deps/build.jl:74
[16:35:30] ######################################################################## 100.0%
└ @ Pkg.Operations /build/julia/src/julia-1.1.0/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075


I've tried doing dev Arpack as well but I get the same error (with a different path to the file)

I installed julia using pacman -S julia and the arch linux website says that that julia package is from the official binaries.

Binary for FreeBSD 11.2?

May we please have a binary for FreeBSD 11.2?

Let me know how I can help.

username@hal  /u/h/username  uname -a                                                                                                                     Mon Sep 17 15:09:52 2018
FreeBSD 11.2-RELEASE FreeBSD 11.2-RELEASE #0 r335510: Fri Jun 22 04:32:14 UTC 2018     
 username@hal  /u/h/username  julia                                                                                                                        Mon Sep 17 15:09:56 2018
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.0 (2018-08-08)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> versioninfo()
Julia Version 1.0.0
Commit 5d4eaca0c9 (2018-08-08 20:58 UTC)
Platform Info:
  OS: FreeBSD (x86_64-unknown-freebsd11.1)
  CPU: AMD Opteron 63xx class CPU
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, bdver1)

(v1.0) pkg> build Arpack
  Building Arpack → `~/.julia/packages/Arpack/WP3ru/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ERROR: LoadError: Your platform x86_64-unknown-freebsd11.1 is not supported by this package!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] top-level scope at /home/username/.julia/packages/Arpack/WP3ru/deps/build.jl:36
│  [3] include at ./boot.jl:317 [inlined]
│  [4] include_relative(::Module, ::String) at ./loading.jl:1038
│  [5] include(::Module, ::String) at ./sysimg.jl:29
│  [6] include(::String) at ./client.jl:388
│  [7] top-level scope at none:0
in expression starting at /home/username/.julia/packages/Arpack/WP3ru/deps/build.jl:26
└ @ Pkg.Operations /home/vagrant/worker/package_freebsd64/build/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

(v1.0) pkg> 

Arpack does not build on OSX

Arpack currently does not build on OSX Mojave:

(v1.0) pkg> add Arpack
 Resolving package versions...
  Updating `~/.julia/environments/v1.0/Project.toml`
  [7d9fca2a] + Arpack v0.3.0
  Updating `~/.julia/environments/v1.0/Manifest.toml`
 [no changes]

(v1.0) pkg> build Arpack
  Building Arpack  `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/Users/bward/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /Users/bward/.julia/packages/BinaryProvider/4F5Hq/src/Products.jl:414
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1041
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:388
│  [9] top-level scope at none:0in expression starting at /Users/bward/.julia/packages/Arpack/UiiMc/deps/build.jl:74
└ @ Pkg.Operations ~/github/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1069

error when building Arpack

The same happens on 1.0, arpack is:

(v0.7) pkg> st
    Status `~/.julia/environments/v0.7/Project.toml`
  [7d9fca2a] Arpack v0.2.3+ #master (https://github.com/JuliaLinearAlgebra/Arpack.jl.git)
(v0.7) pkg> build Arpack
  Building Arpack  `~/.julia/packages/Arpack/WP3ru/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing...
│ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/UTYxu/src/Prefix.jl:224
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/me/.julia/packages/Arpack/WP3ru/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/me/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:409
│  [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/me/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:396
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1038
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:398
│  [9] top-level scope at none:0in expression starting at /home/me/.julia/packages/Arpack/WP3ru/deps/build.jl:40
└ @ Pkg.Operations ~/progs/julia/julia-0.7/usr/share/julia/stdlib/v0.7/Pkg/src/Operations.jl:1

Problem on JuliaPro 1.0.1.1 under Windows

when trying to do

using Arpack
I get
[ Info: Precompiling Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97]
ERROR: LoadError: No deps.jl file could be found. Please try running Pkg.build("Arpack").
...
so I try
Pkg.build("Arpack")
and I get
Building Arpack → C:\Users\alotpie89508\AppData\Local\JuliaPro1011\pkgs-1.0.1.1\packages\Arpack\U iiMc\deps\build.log
┌ Error: Error building Arpack:
│ ERROR: LoadError: UndefVarError: CompilerABI not defined
│ Stacktrace:
│ [1] top-level scope at none:0
│ [2] include at .\boot.jl:317 [inlined]
│ [3] include_relative(::Module, ::String) at .\loading.jl:1041
│ [4] include(::Module, ::String) at .\sysimg.jl:29
│ [5] include(::String) at .\client.jl:388
│ [6] top-level scope at none:0
│ in expression starting at C:\Users\alotpie89508\AppData\Local\JuliaPro1011\pkgs-1.0.1.1\packages\A
rpack\UiiMc\deps\build.jl:14
└ @ Pkg.Operations C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\Operatio
ns.jl:1101

Any ideas?
Thanks in advance,
Pier

LoadError: No deps.jl file (Julia 0.7 Linux binary)

I'm getting the following error:

julia> using Arpack
[ Info: Precompiling module Arpack
ERROR: LoadError: No deps.jl file could be found. Please try running Pkg.build("Arpack").
Currently, the build command might fail when Julia has been built from source
and the recommendation is to use the official binaries from julialang.org.
For more info see https://github.com/JuliaLinearAlgebra/Arpack.jl/issues/5.

Stacktrace:
 [1] top-level scope at /home/chad/.julia/packages/Arpack/QIfu/src/Arpack.jl:13
 [2] include at ./boot.jl:317 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1075
 [4] include(::Module, ::String) at ./sysimg.jl:29
 [5] top-level scope at none:0
 [6] eval at ./boot.jl:319 [inlined]
 [7] eval(::Expr) at ./client.jl:394
 [8] top-level scope at ./none:3 [inlined]
 [9] top-level scope at ./<missing>:0
in expression starting at /home/chad/.julia/packages/Arpack/QIfu/src/Arpack.jl:10
ERROR: Failed to precompile Arpack to /home/chad/.julia/compiled/v0.7/Arpack/X5VZ.ji.
Stacktrace:
 [1] error at ./error.jl:33 [inlined]
 [2] compilecache(::Base.PkgId) at ./loading.jl:1205
 [3] _require(::Base.PkgId) at ./loading.jl:1007
 [4] require(::Base.PkgId) at ./loading.jl:879
 [5] require(::Module, ::Symbol) at ./loading.jl:874

The suggested Pkg.build("Arpack") completes just fine, but using Arpack still gives the same error. I've tried both add Arpack and add https://github.com/JuliaLinearAlgebra/Arpack.jl.

Julia version is the 0.7 pre-built Linux binary:

julia> versioninfo()
Julia Version 0.7.0-beta.0
Commit f41b1ecaec (2018-06-24 01:32 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, skylake)

using Arpack not working

julia> using Arpack
[ Info: Precompiling module Arpack
ERROR: LoadError: could not open file /Users/sheehanolver/.julia/packages/Arpack/8rPU/deps/deps.jl
Stacktrace:
 [1] include at ./boot.jl:317 [inlined]
 [2] include_relative(::Module, ::String) at ./loading.jl:1075
 [3] include at ./sysimg.jl:29 [inlined]
 [4] include(::String) at /Users/sheehanolver/.julia/packages/Arpack/8rPU/src/Arpack.jl:8
 [5] top-level scope at none:0
 [6] include at ./boot.jl:317 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1075
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:0
 [10] eval at ./boot.jl:319 [inlined]
 [11] eval(::Expr) at ./client.jl:394
 [12] top-level scope at ./none:3 [inlined]
 [13] top-level scope at ./<missing>:0
in expression starting at /Users/sheehanolver/.julia/packages/Arpack/8rPU/src/Arpack.jl:10
ERROR: Failed to precompile Arpack to /Users/sheehanolver/.julia/compiled/v0.7/Arpack/X5VZ.ji.
Stacktrace:
 [1] error at ./error.jl:33 [inlined]
 [2] compilecache(::Base.PkgId) at ./loading.jl:1205
 [3] _require(::Base.PkgId) at ./loading.jl:1007
 [4] require(::Base.PkgId) at ./loading.jl:879
 [5] require(::Module, ::Symbol) at ./loading.jl:874

(v0.7) pkg> status
    Status `~/.julia/environments/v0.7/Project.toml`
  [621f4979] AbstractFFTs v0.3.1+ [`~/.julia/dev/AbstractFFTs`]
  [3f3329dc] AlmostBandedMatrices v0.0.0 [`~/Projects/AlmostBandedMatrices.jl`]
  [28f2ccd6] ApproxFun v0.8.1+ [`~/Projects/ApproxFun.jl`]
  [7d9fca2a] Arpack v0.1.1
  [aae01518] BandedMatrices v0.5.0+ [`~/Projects/BandedMatrices.jl`]
  [6e4b80f9] BenchmarkTools v0.3.1
  [ffab5731] BlockBandedMatrices v0.1.0+ [`~/Projects/BlockBandedMatrices.jl`]
  [34da2185] Compat v0.69.0
  [7a1cc6ca] FFTW v0.2.2+ [`~/.julia/dev/FFTW`]
  [057dd010] FastTransforms v0.3.2+ [`~/Projects/FastTransforms.jl`]
  [7c893195] HierarchicalMatrices v0.1.2+ [`~/Projects/HierarchicalMatrices.jl`]
  [e675f1aa] InfiniteArrays v0.1.0 [`~/Projects/InfiniteArrays.jl`]
  [de60f5b2] LazyLinearAlgebra v0.1.0 [`~/Projects/LazyLinearAlgebra.jl`]
  [898213cb] LowRankApprox v0.1.3+ [`~/Projects/LowRankApprox.jl`]
  [295af30f] Revise v0.5.0
  [276daf66] SpecialFunctions v0.6.0
  [c751599d] ToeplitzMatrices v0.3.0+ [`~/Projects/ToeplitzMatrices.jl`]


julia> versioninfo()
Julia Version 0.7.0-beta.18
Commit 4e3902d624 (2018-06-26 06:43 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin17.6.0)
  CPU: Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, skylake)
Environment:
  JULIA_VERSION = 0.6

DomainError when computing svds(A,nsv=2) with rank(A)=2 though svd(A) works

I am using Julia v1.0 and Arpack v0.2.2.
A specific matrix A results from previous steps of my simulation. The matrix is attached below.

    julia> using DelimitedFiles
    julia> using LinearAlgebra
    julia> A = readdlm("A.txt",',');
    julia> size(A)
    (16, 2916)
    julia> rank(A)
    2
    julia> s1 = svd(A);
    julia> s1.S 
    16-element Array{Float64,1}:
  34.766865939662736     
  1.6734608956448976e-12
  1.8674444065435605e-16
  9.492869433912882e-26 
  2.1626317991131764e-29
  1.0244689124737293e-31
  2.9329517260119016e-42
  5.638599284427537e-44 
  1.422215523102853e-45 
  1.1211922768327232e-48
  8.614694575069643e-59 
  1.3155180383502643e-59
  7.540137838201032e-62 
  4.594215997081904e-65 
  4.54479181019948e-76  
  1.3512312113390538e-78

So far so good. Now I want to use svds

julia> using Arpack
julia> s2 = svds(A,nsv=2);
ERROR: DomainError with -1.8050984466728582e-14:
sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x)).
Stacktrace:
 [1] throw_complex_domainerror(::Symbol, ::Float64) at ./math.jl:31
 [2] sqrt at ./math.jl:479 [inlined]
 [3] _broadcast_getindex_evalf at ./broadcast.jl:574 [inlined]
 [4] _broadcast_getindex at ./broadcast.jl:547 [inlined]
 [5] getindex at ./broadcast.jl:507 [inlined]
 [6] macro expansion at ./broadcast.jl:814 [inlined]
 [7] macro expansion at ./simdloop.jl:73 [inlined]
 [8] copyto! at ./broadcast.jl:813 [inlined]
 [9] copyto! at ./broadcast.jl:768 [inlined]
 [10] copy at ./broadcast.jl:744 [inlined]
 [11] materialize(::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(sqrt),Tuple{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(real),Tuple{Array{Float64,1}}}}}) at ./broadcast.jl:724
 [12] #_svds#37(::Int64, ::Bool, ::Float64, ::Int64, ::Int64, ::Array{Float64,1}, ::Function, ::Array{Float64,2}) at /home/thomas/.julia/packages/Arpack/Btbe4/src/Arpack.jl:329
 [13] (::getfield(Arpack, Symbol("#kw##svds")))(::NamedTuple{(:nsv,),Tuple{Int64}}, ::typeof(svds), ::Array{Float64,2}) at ./none:0
 [14] top-level scope at none:0

Whereas it works if I choose nsv=1

julia> s2 = svds(A,nsv=1);
julia> s2[1].S
1-element Array{Float64,1}:
 34.76686593966216

I am not sure if this is related to the specific matrix I have (I do not think so) or the way svds performs the computation.

A.txt

Cannot build Arpack on macos

(v1.1) pkg> build Arpack
  Building Arpack → `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`: 
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc7.tar.gz to /Users/po/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc7.tar.gz...
│ ERROR: LoadError: Could not download https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc7.tar.gz to /Users/po/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc7.tar.gz:
│ ErrorException("")
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #download#89(::Bool, ::Function, ::String, ::String) at /Users/po/.julia/packages/BinaryProvider/4F5Hq/src/PlatformEngines.jl:498
│  [3] #download at ./none:0 [inlined]
│  [4] #download_verify#90(::Bool, ::Bool, ::Bool, ::Function, ::String, ::String, ::String) at /Users/po/.julia/packages/BinaryProvider/4F5Hq/src/PlatformEngines.jl:567
│  [5] #download_verify at ./none:0 [inlined]
│  [6] #install#129(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::Function, ::String, ::String) at /Users/po/.julia/packages/BinaryProvider/4F5Hq/src/Prefix.jl:314
│  [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at ./none:0
│  [8] top-level scope at /Users/po/.julia/packages/Arpack/UiiMc/deps/build.jl:70
│  [9] include at ./boot.jl:326 [inlined]
│  [10] include_relative(::Module, ::String) at ./loading.jl:1038
│  [11] include(::Module, ::String) at ./sysimg.jl:29
│  [12] include(::String) at ./client.jl:403
│  [13] top-level scope at none:0
│ in expression starting at /Users/po/.julia/packages/Arpack/UiiMc/deps/build.jl:68
│ [17:06:09] dyld: Library not loaded: @rpath/libssl.1.0.0.dylib
│ [17:06:09]   Referenced from: /anaconda3/lib/libssh2.1.dylib
│ [17:06:09]   Reason: image not found
└ @ Pkg.Operations /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

I am using official binary. Fresh installation.

julia> versioninfo()
Julia Version 1.1.0
Commit 80516ca202 (2019-01-21 21:24 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)

Build error with 1.0.3 on AARCH64

Building Arpack ──────────→ `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`: 
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.aarch64-linux-gnu-gcc7.tar.gz to /home/rogercritchlow/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.aarch64-linux-gnu-gcc7.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/rogercritchlow/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/rogercritchlow/.julia/packages/BinaryProvider/4F5Hq/src/Products.jl:414
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1044
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:392
│  [9] top-level scope at none:0
│ in expression starting at /home/rogercritchlow/.julia/packages/Arpack/UiiMc/deps/build.jl:74

as a result of Pkg.add("Gadfly") running in a Linux container on an armv8 chromebook. julia installed from the binary build for 1.0.3 on aarch64, running in the Crostini container on a Samsung Chromebook Plus.

julia> versioninfo()
Julia Version 1.0.3
Commit 099e826241 (2018-12-18 01:34 UTC)
Platform Info:
  OS: Linux (aarch64-unknown-linux-gnu)
  CPU: unknown
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, cortex-a53)

ArpackBuilder builds versions of libarpack as if USE_BLAS64=1 had been specified, but there are archs that specify USE_BLAS64=0 in julia/Make.inc. The above error is thrown when Arpack dynamically loads its libarpack.so and cannot resolve the symbols created by USE_BLAS64=1 conventions. USE_BLAS64=1 specifies use of 64 bit integers when compiling libopenblas, renaming global symbols and the library binary itself with a _64 suffix.

A workaround is to trigger the build error, install the libarpack2 package from system repos, and copy the libarpack.so.2.0.0 binary from /usr/lib into .julia/packages/Arpack/.../deps/usr/lib.

This could be fixed by building both versions, USE_BLAS64={0,1}, of libarpack in ArpackBuilder, and deciding which to keep depending on whether this error gets thrown during the Arpack build. That might also work for the other open Arpack issues involving this error, too.

Installation failure

I did add Arpack and I got this log:

(v0.7) pkg> add Arpack
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
 Installed Arpack ─────────── v0.1.0
 Installed Compat ─────────── v0.69.0
 Installed NLSolversBase ──── v6.1.1
 Installed LineSearches ───── v6.0.1
 Installed Optim ──────────── v0.15.1
 Installed StaticArrays ───── v0.7.1
 Installed PDMats ─────────── v0.9.2
 Installed Plots ──────────── v0.17.2
 Installed SpecialFunctions ─ v0.5.0
 Installed DualNumbers ────── v0.4.0
  Updating `~/.julia/environments/v0.7/Project.toml`
  [7d9fca2a] + Arpack v0.1.0
  [91a5bcdd] ↑ Plots v0.17.1 ⇒ v0.17.2
  Updating `~/.julia/environments/v0.7/Manifest.toml`
  [7d9fca2a] + Arpack v0.1.0
  [34da2185] ↑ Compat v0.68.0 ⇒ v0.69.0
  [fa6b7ba4] ↑ DualNumbers v0.3.0 ⇒ v0.4.0
  [d3d80556] ↑ LineSearches v3.2.5 ⇒ v6.0.1
  [d41bc354] ↑ NLSolversBase v4.4.1 ⇒ v6.1.1
  [429524aa] ↑ Optim v0.14.1 ⇒ v0.15.1
  [90014a1f] ↑ PDMats v0.9.1 ⇒ v0.9.2
  [91a5bcdd] ↑ Plots v0.17.1 ⇒ v0.17.2
  [276daf66] ↑ SpecialFunctions v0.4.0 ⇒ v0.5.0
  [90137ffa] ↑ StaticArrays v0.7.0 ⇒ v0.7.1
  Building Arpack ──────────→ `~/.julia/packages/Arpack/Rkbg/deps/build.log`
┌ Error: Error building `Arpack`:┌ Warning: Deprecated syntax `try without catch or finally` at /Users/viral/.julia/packages/BinaryProvider/2Hlv/src/PlatformNames.jl:347.
└ @ nothing PlatformNames.jl:347
┌ Warning: Deprecated syntax `try without catch or finally` at /Users/viral/.julia/packages/BinaryProvider/2Hlv/src/Prefix.jl:337.
└ @ nothing Prefix.jl:337
[ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-apple-darwin14.tar.gz to /Users/viral/.julia/packages/Arpack/Rkbg/deps/usr/downloads/ArpackBuilder.x86_64-apple-darwin14.tar.gz...
┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│   caller = macro expansion at OutputCollector.jl:63 [inlined]
└ @ Core OutputCollector.jl:63
┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│   caller = wait(::OutputCollector) at OutputCollector.jl:158
└ @ BinaryProvider OutputCollector.jl:158
┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│   caller = wait(::OutputCollector) at OutputCollector.jl:159
└ @ BinaryProvider OutputCollector.jl:159
┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│   caller = wait(::OutputCollector) at OutputCollector.jl:163
└ @ BinaryProvider OutputCollector.jl:163
ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :Arpack, "Prefix(/Users/viral/.julia/packages/Arpack/Rkbg/deps/usr)") is not satisfied, cannot generate deps.jl!
Stacktrace:
 [1] error at ./error.jl:33 [inlined]
 [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /Users/viral/.julia/packages/BinaryProvider/2Hlv/src/Products.jl:389
 [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /Users/viral/.julia/packages/BinaryProvider/2Hlv/src/Products.jl:376
 [4] top-level scope at none:0
 [5] include at ./boot.jl:317 [inlined]
 [6] include_relative(::Module, ::String) at ./loading.jl:1089
 [7] include(::Module, ::String) at ./sysimg.jl:29
 [8] include(::String) at ./client.jl:393
 [9] top-level scope at none:0
in expression starting at /Users/viral/.julia/packages/Arpack/Rkbg/deps/build.jl:40
[09:55:17] #####################################################################[09:55:17] #####################################################################[09:55:17] ######################################################               [09:55:17] ######################################################################## 100.0%

better handling of the build process: using julia built against mkl

Following this discussion here, one can supply a self-built arpack binary (esp. built against mkl). For this particular problem, this can be handled in a cleaner/better documented way. e.g. for deps/build.jl, add something like:

if Base.libblas_name == "libopenblas64_"
   (use openblas)
else
  (use user provided path to arpack binary, passed as argument from Pkg.build)
end

via manually pasting a compiled binary to ~/.julia/packages/Arpack/<pkg hash>/deps/usr/lib, I can get Pkg.test("Arpack") pass on a mac using a modified script from the binary builder script, using commit "b095052372aa95d4281a645ee1e367c28255c947" of arpack-ng.git:

#!/usr/bin/env bash
source /opt/intel/mkl/bin/mklvars.sh intel64 ilp64

CMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,$MKLROOT/lib"



# Symbols that have float32, float64, complexf32, and complexf64 support
SDCZ_SYMBOLS="axpy copy gemv geqr2 lacpy lahqr lanhs larnv lartg \
              lascl laset scal trevc trmm trsen gbmv gbtrf gbtrs \
              gttrf gttrs pttrf pttrs"
# All symbols that have float32/float64 support (including the SDCZ_SYMBOLS above)
SD_SYMBOLS="${SDCZ_SYMBOLS} dot ger labad laev2 lamch lanst lanv2 \
            lapy2 larf larfg lasr nrm2 orm2r rot steqr swap"
# All symbols that have complexf32/complexf64 support (including the SDCZ_SYMBOLS above)
CZ_SYMBOLS="${SDCZ_SYMBOLS} dotc geru unm2r"
# Add in (s|d)*_64 symbol remappings:
for sym in ${SD_SYMBOLS}; do
    SYMBOL_DEFS="${SYMBOL_DEFS} -Ds${sym}=s${sym}_64 -Dd${sym}=d${sym}_64"
done
# Add in (c|z)*_64 symbol remappings:
for sym in ${CZ_SYMBOLS}; do
    SYMBOL_DEFS="${SYMBOL_DEFS} -Dc${sym}=c${sym}_64 -Dz${sym}=z${sym}_64"
done
# Add one-off symbol mappings; things that don't fit into any other bucket:
for sym in scnrm2 dznrm2 csscal zdscal dgetrf dgetrs; do
    SYMBOL_DEFS="${SYMBOL_DEFS} -D${sym}=${sym}_64"
done
# Set up not only lowercase symbol remappings, but uppercase as well:
SYMBOL_DEFS="${SYMBOL_DEFS} ${SYMBOL_DEFS^^}"

FFLAGS="${FFLAGS} -fdefault-integer-8 ${SYMBOL_DEFS} -ff2c"

cmake ..  -DINTERFACE64=1 -DBUILD_SHARED_LIBS=ON -DBLAS_LIBRARIES="-L$MKLROOT/lib -lmkl_rt" -DLAPACK_LIBRARIES="-L$MKLROOT/lib -lmkl_rt" -DCMAKE_EXE_LINKER_FLAGS="${CMAKE_EXE_LINKER_FLAGS}" -DCMAKE_Fortran_FLAGS="${FFLAGS}"

Additional question: if Pkg.test("Arpack") pass, is it safe to assume that the self-built binary is compatible? Thanks!

julia-conda based: Error: Error building `Arpack`

julia> Pkg.build("Arpack")
Building Arpack → ~/.julia/packages/Arpack/CH7vk/deps/build.log
┌ Error: Error building Arpack:
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/cllcentosvm/.julia/packages/Arpack/CH7vk/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/cllcentosvm/.julia/packages/BinaryProvider/4F5Hq/src/Products.jl:414
│ [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│ [4] top-level scope at none:0
│ [5] include at ./boot.jl:317 [inlined]
│ [6] include_relative(::Module, ::String) at ./loading.jl:1044
│ [7] include(::Module, ::String) at ./sysimg.jl:29
│ [8] include(::String) at ./client.jl:392
│ [9] top-level scope at none:0
│ in expression starting at /home/cllcentosvm/.julia/packages/Arpack/CH7vk/deps/build.jl:74
└ @ Pkg.Operations /home/conda/feedstock_root/build_artifacts/julia_1548684429855/work/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1097

julia> versioninfo()
Julia Version 1.0.3
Platform Info:
OS: Linux (x86_64-conda_cos6-linux-gnu)
CPU: Intel(R) Xeon(R) CPU E5-1620 v4 @ 3.50GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-6.0.0 (ORCJIT, broadwell)

julia>

Warning: Package Arpack does not have Libdl in its dependencies

I downloaded Julia -rc3 binaries and did a ]add Arpack and a ]build Arpack. Now, when I try using Arpack at the REPL, I get the following:

julia> using Arpack
[ Info: Recompiling stale cache file /Users/bromberger1/.julia/compiled/v0.7/Arpack/X5VZL.ji for Arpack [7d9fca2a-8960-54d3-9f78-7d1dccf2cb97]
┌ Warning: __precompile__() is now the default
│   caller = top-level scope at none:0
└ @ Core none:0
┌ Warning: Package Arpack does not have Libdl in its dependencies:
│ - If you have Arpack checked out for development and have
│   added Libdl as a dependency but haven't updated your primary
│   environment's manifest file, try `Pkg.resolve()`.
│ - Otherwise you may need to report an issue with Arpack
└ Loading Libdl into Arpack from project dependency, future warnings for Arpack are suppressed.

eigs seems to work, but every time I do a using Arpack in the REPL, it tries to recompile.

Wrong ARPACK error messages

Originally from JuliaLang/julia#24292

As pointed out in JuliaLang/julia#24192 (comment), the error messages in the show method for ARPACKException are not always correct. There are two kinds of ARPACK subroutines (eupd and aupd) that use the same error codes for completely different errors. Right now, the error messages from eupd are used for all exceptions.

Previously, it has been discussed that ARPACK throws more than it should since it is sometimes useful to have access to the intermediate output in cases where we throw, e.g. when the maximum number of iterations has been reached. Hence, this issue could also be fixed as part of a more general adjustment of the error handling in our ARPACK wrappers.

eigs on a Symmetric view of sparse matrix 1000 times slower than sparse matrix alone

Hello,

I just want to point out this strange problem, clearly seen in the benchmark below

using PyCall
using Arpack
using StaticArrays
using SparseArrays
using BenchmarkTools
using LinearAlgebra

function random_sparse_matrix(n)

    I = zeros(Int32,0)
    J = zeros(Int32,0)
    K = zeros(0)

    for j in 1:n
        for i in 1:j

            if i == j
                push!(I,i)
                push!(J,j)
                push!(K,rand(1)[1])

            else
                if rand(1)[1] > 0.8
                    push!(I,i)
                    push!(J,j)
                    push!(K,0.15)
                end
            end
        end
    end
    return sparse(I,J,K)
end

const x = rand(500, 500)
const A = x + x'
const B = Symmetric(A)
const C = random_sparse_matrix(500)
const D = Symmetric(C)

@btime eigs(A,nev=10,tol=1e-6)
@btime eigs(B,nev=10,tol=1e-6)
@btime eigs(C,nev=10,tol=1e-6)
@btime eigs(D,nev=10,tol=1e-6)

which gives the following output

  4.898 ms (542 allocations: 163.52 KiB)
  3.661 ms (542 allocations: 163.52 KiB)
  1.489 ms (255 allocations: 571.59 KiB)
  1.242 s (729 allocations: 170.84 KiB)

How can eigs on the same matrix be 1000 times slower, just because it is a Symmetric view of it ? (Shouldn't it be actually faster?)

svds StackOverfowError for Float16 matrices

svds throws a StackOverflowError on Julia 1.2-DEV.172 when applied to Float16 matrices, sparse or not (could not test on Julia 1.0):

julia> svds(Float16[1 2 3; 4 5 6;7 8 9], nsv=2)
ERROR: StackOverflowError:
Stacktrace:
 [1] (::getfield(Arpack, Symbol("#kw##svds")))(::NamedTuple{(:nsv,),Tuple{Int64}}, ::typeof(svds), ::Array{Float16,2}) at ./none:0
 [2] #svds#35(::Base.Iterators.Pairs{Symbol,Int64,Tuple{Symbol},NamedTuple{(:nsv,),Tuple{Int64}}}, ::Function, ::Array{Float16,2}) at /home/zgornel/.julia/packages/Arpack/UiiMc/src/Arpack.jl:263
 ... (the last 2 lines are repeated 37122 more times)
 [74247] (::getfield(Arpack, Symbol("#kw##svds")))(::NamedTuple{(:nsv,),Tuple{Int64}}, ::typeof(svds), ::Array{Float16,2}) at ./none:0

For Float32 and Float64 works as expected.
The regular svd returns Float32 results for Float16 matrices, I may be missing something here...

ulia> u, s, v = svd(Float16[1 2 3; 4 5 6;7 8 9])
SVD{Float32,Float32,Array{Float32,2}}(Float32[-0.214837 0.88723 0.408248; -0.520587 0.249644 -0.816496; -0.826337 -0.387943 0.408248], Float32[16.8481, 1.06837, 2.37212e-7], Float32[-0.479671 -0.572368 -0.665064; -0.776691 -0.0756864 0.625318; -0.408248 0.816497 -0.408248])

Installation error - Linux

I am aware that there is another Issue for OSX, but I am also facing some problems in Linux as well. Feel free to close if this is the same issue.

Fresh Julia Master compiled from Git source, Fedora 28, gcc 8.1.1 (with gfortran)

> (v0.7) pkg> add Arpack
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
 Resolving package versions...
  Updating `~/.julia/environments/v0.7/Project.toml`
  [7d9fca2a] + Arpack v0.1.1
  Updating `~/.julia/environments/v0.7/Manifest.toml`
  [7d9fca2a] + Arpack v0.1.1
  [b99e7846] + BinaryProvider v0.3.2
  [ea8e919c] + SHA 

then

julia> using Arpack
[ Info: Precompiling module Arpack
ERROR: LoadError: could not open file /home/lenz/.julia/packages/Arpack/8rPU/deps/deps.jl
Stacktrace:
 [1] include at ./boot.jl:317 [inlined]
 [2] include_relative(::Module, ::String) at ./loading.jl:1075
 [3] include at ./sysimg.jl:29 [inlined]
 [4] include(::String) at /home/lenz/.julia/packages/Arpack/8rPU/src/Arpack.jl:8
 [5] top-level scope at none:0
 [6] include at ./boot.jl:317 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1075
 [8] include(::Module, ::String) at ./sysimg.jl:29
 [9] top-level scope at none:0
 [10] eval at ./boot.jl:319 [inlined]
 [11] eval(::Expr) at ./client.jl:394
 [12] top-level scope at ./none:3 [inlined]
 [13] top-level scope at ./<missing>:0
in expression starting at /home/lenz/.julia/packages/Arpack/8rPU/src/Arpack.jl:10
ERROR: Failed to precompile Arpack to /home/lenz/.julia/compiled/v0.7/Arpack/X5VZ.ji.
Stacktrace:
 [1] error at ./error.jl:33 [inlined]
 [2] compilecache(::Base.PkgId) at ./loading.jl:1205
 [3] _require(::Base.PkgId) at ./loading.jl:1007
 [4] require(::Base.PkgId) at ./loading.jl:879
 [5] require(::Module, ::Symbol) at ./loading.jl:874

The same happens if I use 

`(v0.7) pkg> develop Arpack#master`



Issue installing Arpack with julia packaged for opensuse Tumbleweed

I have a problem when trying to install Arpac on opensuse Tumbleweed(x86_64). I installed Julia from the package manager.

Here is the output when I try to add Arpack:

(v1.0) pkg> add Arpack
 Resolving package versions...
 Installed Arpack ─ v0.3.0
  Updating `~/.julia/environments/v1.0/Project.toml`
  [7d9fca2a] + Arpack v0.3.0
  Updating `~/.julia/environments/v1.0/Manifest.toml`
  [7d9fca2a] + Arpack v0.3.0
  Building Arpack → `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`: 
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz to /home/ericst/.julia/packages/Arpack/UiiMc/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-linux-gnu-gcc8.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/ericst/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/ericst/.julia/packages/BinaryProvider/4F5Hq/src/Products.jl:414
│  [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1044
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:392
│  [9] top-level scope at none:0
│ in expression starting at /home/ericst/.julia/packages/Arpack/UiiMc/deps/build.jl:74
[20:40:53] ######################################################################## 100.0% 
└ @ Pkg.Operations /home/abuild/rpmbuild/BUILD/julia-1.0.3/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1097

And here is the output of versioninfo():

julia> versioninfo()
Julia Version 1.0.3
Commit 04330c0378 (2018-12-16 21:23 UTC)
Platform Info:
  OS: Linux (x86_64-suse-linux)
  CPU: Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, broadwell)

After that I tried by downloading the binaries from julialang.org and using them instead and I haven't had any problems with that. Here is then the versioninfo() output for this:

julia> versioninfo()
Julia Version 1.0.3
Commit 099e826241 (2018-12-18 01:34 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, broadwell)

SVDS of a LinearMap

This is intended as a reminder and progress tracking on the issue of allowing LinearMaps in svds, see 21701 and 27480, completely analogously to eigs. It appears to be feasible, even though the last comment in the second issue indicated that there is need for a *(::LinearMap,::AbstractMatrix)?

Installation error when Julia is built from source

I tried installing Arpack on 0.7 beta and saw this error trying to run eigs:

julia> A = Diagonal(1:4);
WARNING: Base.Diagonal is deprecated: it has been moved to the standard library package `LinearAlgebra`.
Add `using LinearAlgebra` to your imports.
 in module Main

julia> λ, ϕ = eigs(A, nev = 2);
ERROR: error compiling saupd: could not load library ""
dlopen(.dylib, 1): image not found
Stacktrace:
 [1] aupd_wrapper(::Any, ::getfield(Arpack, Symbol("#matvecA!#24")){LinearAlgebra.Diagonal{Float64,Array{Float64,1}}}, ::getfield(Arpack, Symbol("##18#25")), ::getfield(Arpack, Symbol("##19#26")), ::Int64, ::Bool, ::Bool, ::String, ::Int64, ::Int64, ::String, ::Float64, ::Int64, ::Int64, ::Array{Float64,1}) at /Users/yurivish/.julia/packages/Arpack/Rkbg/src/libarpack.jl:42
 [2] #_eigs#17(::Int64, ::Int64, ::Symbol, ::Float64, ::Int64, ::Nothing, ::Array{Float64,1}, ::Bool, ::Any, ::Any, ::Any) at /Users/yurivish/.julia/packages/Arpack/Rkbg/src/Arpack.jl:176
 [3] (::getfield(Arpack, Symbol("#kw##eigs")))(::NamedTuple{(:nev,),Tuple{Int64}}, ::typeof(eigs), ::LinearAlgebra.Diagonal{Int64,UnitRange{Int64}}) at ./none:0
 [4] top-level scope at none:0

To see if this was solved on master, I tried installing it. But this happens when I try to develop Arpack#master:

Error: Error building `Arpack`:
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-apple-darwin14.tar.gz to /Users/yurivish/.julia/dev/Arpack/deps/usr/downloads/ArpackBuilder.x86_64-apple-darwin14.tar.gz...
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = macro expansion at OutputCollector.jl:63 [inlined]
│ └ @ Core OutputCollector.jl:63
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:158
│ └ @ BinaryProvider OutputCollector.jl:158
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:159
│ └ @ BinaryProvider OutputCollector.jl:159
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:163
│ └ @ BinaryProvider OutputCollector.jl:163
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/Users/yurivish/.julia/dev/Arpack/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error at ./error.jl:33 [inlined]
│  [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /Users/yurivish/.julia/packages/BinaryProvider/2Hlv/src/Products.jl:389
│  [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /Users/yurivish/.julia/packages/BinaryProvider/2Hlv/src/Products.jl:376
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1075
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:393
│  [9] top-level scope at none:0
│ in expression starting at /Users/yurivish/.julia/dev/Arpack/deps/build.jl:40
julia> versioninfo()
Julia Version 0.7.0-beta.0
Commit f41b1ecaec (2018-06-24 01:32 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin16.7.0)
  CPU: Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, ivybridge)
Environment:
  JULIA_EDITOR = subl

Build error "Could not extract the platform key"

Just switched to Julia 1.0 and get the following build error:
Error: Error building 'Arpack': │ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing... │ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/UTYxu/src/Prefix.jl:224 │ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(~/.julia/packages/Arpack/WP3ru/deps/usr)") is not satisfied, cannot generate deps.jl! │ Stacktrace: │ [1] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at ~/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:409 │ [2] write_deps_file(::String, ::Array{LibraryProduct,1}) at ~/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:396 │ [3] top-level scope at none:0 │ [4] include(::String) at ./client.jl:388 │ [5] top-level scope at none:0 │ in expression starting at ~/.julia/packages/Arpack/WP3ru/deps/build.jl:40

Build Error on Linux

On archlinux, with system arpack libraries available, I get the following error:

(v0.7) pkg> dev Arpack
   Cloning git-repo `https://github.com/JuliaLinearAlgebra/Arpack.jl.git`
  Updating git-repo `https://github.com/JuliaLinearAlgebra/Arpack.jl.git`
 Resolving package versions...
  Updating `~/.julia/environments/v0.7/Project.toml`
  [7d9fca2a] ? Arpack v0.1.1 [`~/.julia/dev/Arpack`]
  Updating `~/.julia/environments/v0.7/Manifest.toml`
  [7d9fca2a] ? Arpack v0.1.1 [`~/.julia/dev/Arpack`]
  Building Arpack  `~/.julia/dev/Arpack/deps/build.log`
┌ Error: Error building `Arpack`: 
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz to /home/carlo/.julia/dev/Arpack/deps/usr/downloads/ArpackBuilder.x86_64-linux-gnu.tar.gz...
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = macro expansion at OutputCollector.jl:63 [inlined]
│ └ @ Core OutputCollector.jl:63
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:160
│ └ @ BinaryProvider OutputCollector.jl:160
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:161
│ └ @ BinaryProvider OutputCollector.jl:161
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:165
│ └ @ BinaryProvider OutputCollector.jl:165
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/carlo/.julia/dev/Arpack/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error at ./error.jl:33 [inlined]
│  [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/carlo/.julia/packages/BinaryProvider/mWAR/src/Products.jl:392
│  [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/carlo/.julia/packages/BinaryProvider/mWAR/src/Products.jl:379
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1034
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:393
│  [9] top-level scope at none:0in expression starting at /home/carlo/.julia/dev/Arpack/deps/build.jl:40
[13:22:58] ######################################################################## 100,0% 
└ @ Pkg.Operations Operations.jl:973

Using Arpack with MKL

julia> versioninfo()
Julia Version 0.7.0-beta.65
Commit e2de9b3d2e* (2018-06-28 03:45 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, ivybridge)
(v0.7) pkg> st -m
    Status `~/.julia/environments/v0.7/Manifest.toml`
  [7d9fca2a] Arpack v0.1.1
  [6e4b80f9] BenchmarkTools v0.3.1
  [b99e7846] BinaryProvider v0.3.2
  [324d7699] CategoricalArrays v0.3.10
  [944b1d66] CodecZlib v0.4.3
  [34da2185] Compat v0.69.0
  [a93c6f00] DataFrames v0.11.6
  [9a8bc11e] DataStreams v0.3.6
  [864edb3b] DataStructures v0.8.3
  [ffbed154] DocStringExtensions v0.4.4
  [e30172f5] Documenter v0.18.0
  [682c06a0] JSON v0.17.2
  [e1d29d7a] Missings v0.2.10
  [73a701b4] NamedTuples v4.0.2
  [4d1e1d77] Nullables v0.0.5
  [90014a1f] PDMats v0.9.4
  [189a3867] Reexport v0.1.0
  [a2af1166] SortingAlgorithms v0.2.1
  [2913bbd2] StatsBase v0.23.1
  [3bb67fe8] TranscodingStreams v0.5.2
  [ea10d353] WeakRefStrings v0.4.7
  [2a0f44e3] Base64 
  [ade2ca70] Dates 
  [8bb1440f] DelimitedFiles 
  [8ba89e20] Distributed 
  [9fa8497b] Future 
  [b77e0a4c] InteractiveUtils 
  [76f85450] LibGit2 
  [8f399da3] Libdl 
  [37e2e46d] LinearAlgebra 
  [56ddb016] Logging 
  [d6f4376e] Markdown 
  [a63ad114] Mmap 
  [44cfe95a] Pkg 
  [de0858da] Printf 
  [3fa0cd96] REPL 
  [9a3f8284] Random 
  [ea8e919c] SHA 
  [9e88b42a] Serialization 
  [1a1011a3] SharedArrays 
  [6462fe0b] Sockets 
  [2f01184e] SparseArrays 
  [4607b0f0] SuiteSparse 
  [8dfed614] Test 
  [cf7118a7] UUIDs 
  [4ec0a83e] Unicode 

(v0.7) pkg> build Arpack
  Building Arpack  `~/.julia/packages/Arpack/8rPU/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = macro expansion at OutputCollector.jl:63 [inlined]
│ └ @ Core OutputCollector.jl:63
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:158
│ └ @ BinaryProvider OutputCollector.jl:158
│ ┌ Warning: `wait(t::Task)` is deprecated, use `fetch(t)` instead.
│ │   caller = wait(::OutputCollector) at OutputCollector.jl:159
│ └ @ BinaryProvider OutputCollector.jl:159
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/bates/.julia/packages/Arpack/8rPU/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error at ./error.jl:33 [inlined]
│  [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/bates/.julia/packages/BinaryProvider/2Hlv/src/Products.jl:389
│  [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/bates/.julia/packages/BinaryProvider/2Hlv/src/Products.jl:376
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1075
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:393
│  [9] top-level scope at none:0in expression starting at /home/bates/.julia/packages/Arpack/8rPU/deps/build.jl:40
└ @ Pkg.Operations Operations.jl:973

Building error

Try to build but got error:

  Building Arpack → `~/.julia/packages/Arpack/UiiMc/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/phelipe/.julia/packages/Arpack/UiiMc/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/phelipe/.julia/packages/BinaryProvider/1nGWd/src/Products.jl:408
│  [2] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
│  [3] top-level scope at none:0
│  [4] include(::String) at ./client.jl:388
│  [5] top-level scope at none:0
│ in expression starting at /home/phelipe/.julia/packages/Arpack/UiiMc/deps/build.jl:74
└ @ Pkg.Operations /build/julia/src/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1069

I am using Manjaro linux:

julia> versioninfo()
Julia Version 1.0.1
Commit 0d713926f8 (2018-09-29 19:05 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i5-4210U CPU @ 1.70GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.0 (ORCJIT, haswell)

Build error with libgfortran.so.5

(v0.7) pkg> build Arpack
  Building Arpack → `~/Julia/depot/packages/Arpack/8rPU/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/tbesard/Julia/depot/packages/Arpack/8rPU/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error at ./error.jl:33 [inlined]
│  [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/tbesard/Julia/depot/packages/BinaryProvider/mWAR/src/Products.jl:392
│  [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/tbesard/Julia/depot/packages/BinaryProvider/mWAR/src/Products.jl:379
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1034
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:393
│  [9] top-level scope at none:0
│ in expression starting at /home/tbesard/Julia/depot/packages/Arpack/8rPU/deps/build.jl:40
└ @ Pkg.Operations Operations.jl:973

shell> ldd /home/tbesard/Julia/depot/packages/Arpack/8rPU/deps/usr/lib/libarpack.so.2.0.0
        linux-vdso.so.1 (0x00007ffe23d82000)
        libopenblas64_.so.0 => not found
        libgfortran.so.4 => not found
        libm.so.6 => /usr/lib/libm.so.6 (0x00007fe2da67f000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fe2da467000)
        libquadmath.so.0 => /usr/lib/libquadmath.so.0 (0x00007fe2da226000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007fe2d9e6a000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007fe2dac6b000)

julia> Libdl.dlopen("libgfortran")
Ptr{Nothing} @0x00000018df9a7e80

julia> Libdl.dlpath(ans)
"/usr/lib/libgfortran.so.5"

This on Arch Linux

Look for the libarpack library in the system first

I had a problem while building Arpack, it kept costantly saying that libarpack wasn't satisfied as a dependency. After many frustrating attempts, I managed to figure out some things about the build system, and I made the build extremely verbose. This was the information I got:

┌ Error: Error building `Arpack`: 
│ [ Info: Found a valid dl path libarpack.so while looking for libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so matches our search criteria of libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so cannot be dlopen'ed
│ [ Info: Found a valid dl path libarpack.so.2 while looking for libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2 matches our search criteria of libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2 cannot be dlopen'ed
│ [ Info: Found a valid dl path libarpack.so.2.0.0 while looking for libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2.0.0 matches our search criteria of libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2.0.0 cannot be dlopen'ed
│ [ Info: Could not locate libarpack inside /home/fabio/.julia/dev/Arpack/deps/usr/lib
│ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing...
│ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/UTYxu/src/Prefix.jl:224
│ [ Info: Destination file /home/fabio/.julia/dev/Arpack/deps/usr/downloads/ArpackBuilder.x86_64-linux-gnu.tar.gz already exists, verifying...
│ [ Info: Hash cache is consistent, returning true
│ [ Info: Installing /home/fabio/.julia/dev/Arpack/deps/usr/downloads/ArpackBuilder.x86_64-linux-gnu.tar.gz into /home/fabio/.julia/dev/Arpack/deps/usr
│ [ Info: Removing files installed by manifests/ArpackBuilder.x86_64-linux-gnu.list
│ [ Info:   logs/update_rpath_libopenblas64_.so.0.log removed
│ [ Info:   logs/update_linkage_libarpack.so.2.0.0_libopenblas64_.so.0.log removed
│ [ Info:   logs/ArpackBuilder.log removed
│ [ Info:   Culling empty directory logs
│ [ Info:   lib/libarpack.so removed
│ [ Info:   lib/libarpack.so.2.0.0 removed
│ [ Info:   lib/libarpack.so.2 removed
│ [ Info:   manifests/ArpackBuilder.x86_64-linux-gnu.list removed
│ [ Info: Found a valid dl path libarpack.so while looking for libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so matches our search criteria of libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so cannot be dlopen'ed
│ [ Info: Found a valid dl path libarpack.so.2 while looking for libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2 matches our search criteria of libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2 cannot be dlopen'ed
│ [ Info: Found a valid dl path libarpack.so.2.0.0 while looking for libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2.0.0 matches our search criteria of libarpack
│ [ Info: /home/fabio/.julia/dev/Arpack/deps/usr/lib/libarpack.so.2.0.0 cannot be dlopen'ed
│ [ Info: Could not locate libarpack inside /home/fabio/.julia/dev/Arpack/deps/usr/lib
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/fabio/.julia/dev/Arpack/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{Product,1}) at /home/fabio/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:409
│  [2] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{Product,1}) at ./none:0
│  [3] top-level scope at none:0
│  [4] include(::String) at ./client.jl:388
│  [5] top-level scope at none:0
│ in expression starting at /home/fabio/.julia/dev/Arpack/deps/build.jl:40

So, the libraries are present, but they cannot be loaded by the system. This happens when there is a different version of gcc, I believe, but correct me if I'm wrong. (I'm using Arch Linux, which stays always on the latest version of gcc)

This issue I solved by copying manually the libarpack.so.2.0.0 which was present in my system, from /usr/lib to the Prefix chosen by the build script - .julia/dev/Arpack/deps/usr/lib).

So, my point is: can the build script check first the system library, then the local library, then download the files if necessary? Done in this order, things would have gone much smoother for me.

CompilerABI not defined

try to build but got error:
Building Arpack → C:\Users\connor\AppData\Local\JuliaPro-1.0.1.1\pkgs-1.0.1.1\packages\Arpack\ukx3M\deps\build.log
┌ Error: Error building Arpack:
│ ERROR: LoadError: UndefVarError: CompilerABI not defined
│ Stacktrace:
│ [1] top-level scope at none:0
│ [2] include at .\boot.jl:317 [inlined]
│ [3] include_relative(::Module, ::String) at .\loading.jl:1041
│ [4] include(::Module, ::String) at .\sysimg.jl:29
│ [5] include(::String) at .\client.jl:388
│ [6] top-level scope at none:0
│ in expression starting at C:\Users\connor\AppData\Local\JuliaPro-1.0.1.1\pkgs-1.0.1.1\packages\Arpack\ukx3M\deps\build.jl:14
└ @ Pkg.Operations C:\Users\julia\AppData\Local\Julia-1.0.1\share\julia\stdlib\v1.0\Pkg\src\Operations.jl:1101

Build error on Julia 1.0 and Ubuntu 16.04

julia> Pkg.add("Arpack")
 Resolving package versions...
 Installed Arpack ───────── v0.2.2
 Installed BinaryProvider ─ v0.4.1
  Updating `~/.julia/environments/v1.1/Project.toml`
  [7d9fca2a] + Arpack v0.2.2
  Updating `~/.julia/environments/v1.1/Manifest.toml`
  [7d9fca2a] + Arpack v0.2.2
  [b99e7846] + BinaryProvider v0.4.1
  Building Arpack → `~/.julia/packages/Arpack/Btbe4/deps/build.log`
┌ Error: Error building `Arpack`:
│ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing...
│ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/pWVqZ/src/Prefix.jl:224
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz to /home/adam/.julia/packages/Arpack/Btbe4/deps/usr/downloads/ArpackBuilder.x86_64-linux-gnu.tar.gz...
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/adam/.julia/packages/Arpack/Btbe4/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/adam/.julia/packages/BinaryProvider/pWVqZ/src/Products.jl:409
│  [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/adam/.julia/packages/BinaryProvider/pWVqZ/src/Products.jl:396
│  [4] top-level scope at none:0
│  [5] include at ./boot.jl:317 [inlined]
│  [6] include_relative(::Module, ::String) at ./loading.jl:1038
│  [7] include(::Module, ::String) at ./sysimg.jl:29
│  [8] include(::String) at ./client.jl:388
│  [9] top-level scope at none:0
│ in expression starting at /home/adam/.julia/packages/Arpack/Btbe4/deps/build.jl:40
[13:30:09] ######################################################################## 100.0%
└ @ Pkg.Operations /home/Adama-docs/Adam/linux/tmp/julia/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1068

I guess I am missing some system package, but what it could be?

On Ubuntu 18.04 I am able to build the package successfully.

`build arpack` error

(v0.7) pkg> build Arpack
  Updating registry at `~/.julia/registries/Uncurated`
  Updating git-repo `https://github.com/JuliaRegistries/Uncurated.git`
ERROR: KeyError: key "git-tree-sha1" not found
Stacktrace:
 [1] getindex(::Dict{String,Any}, ::String) at ./dict.jl:487
 [2] #instantiate#61(::Nothing, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Pkg.Types.Context) at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:530
 [3] instantiate at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:509 [inlined]
 [4] #build#51(::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::Function, ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:397
 [5] build at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/API.jl:377 [inlined]
 [6] do_build!(::Pkg.Types.Context, ::Array{Union{Pkg.Types.VersionRange, String, Pkg.REPLMode.Command, Pkg.REPLMode.Option, Pkg.REPLMode.Rev},1}) at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/REPLMode.jl:722
 [7] #invokelatest#1 at ./essentials.jl:670 [inlined]
 [8] invokelatest at ./essentials.jl:669 [inlined]
 [9] do_cmd!(::Array{Union{Pkg.Types.VersionRange, String, Pkg.REPLMode.Command, Pkg.REPLMode.Option, Pkg.REPLMode.Rev},1}, ::REPL.LineEditREPL) at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/REPLMode.jl:262
 [10] #do_cmd#8(::Bool, ::Function, ::REPL.LineEditREPL, ::String) at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/REPLMode.jl:222
 [11] do_cmd at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/REPLMode.jl:219 [inlined]
 [12] (::getfield(Pkg.REPLMode, Symbol("##27#30")){REPL.LineEditREPL,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /Users/viral/julia/usr/share/julia/stdlib/v0.7/Pkg/src/REPLMode.jl:955
 [13] top-level scope at none:0

Use Arpack.jl with MKL

I have julia 0.6 code which I ran with Arpack's eig function with MKL by using a JuliaPro distribution.
I would like to use Arpack.jl with MKL, what is the best/easiest way to do that?
Are there plans to include MKL support here?
I just saw some people building julia with MKL on their own and trying to link in #7 and #61

Building and testing fails on Julia 1.0

Just wanted to get this issue to light. Dump below:

build Arpack
Building Arpack → ~/.julia/packages/Arpack/Btbe4/deps/build.log
┌ Error: Error building Arpack:
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/Users/arora/.julia/packages/Arpack/Btbe4/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│ [1] error(::String) at ./error.jl:33
│ [2] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /Users/arora/.julia/packages/BinaryProvider/ZbFxn/src/Products.jl:393
│ [3] write_deps_file(::String, ::Array{LibraryProduct,1}) at /Users/arora/.julia/packages/BinaryProvider/ZbFxn/src/Products.jl:380
│ [4] top-level scope at none:0
│ [5] include at ./boot.jl:317 [inlined]
│ [6] include_relative(::Module, ::String) at ./loading.jl:1038
│ [7] include(::Module, ::String) at ./sysimg.jl:29
│ [8] include(::String) at ./client.jl:388
│ [9] top-level scope at none:0
│ in expression starting at /Users/arora/.julia/packages/Arpack/Btbe4/deps/build.jl:40
└ @ Pkg.Operations ~/src/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

libarpack.so

I have a julia build with MKL so downloaded .so from the repo doesn't work as it expects openblas. Can someone revise the build.jl to allow first look up the a directory defined by some environment variable, say ARPACK_LIBRARY_PATH, to find the existing liblapack.so and use it instead?

Can't install due to LibraryProduct is not satisfied

Tried both on build from source or official binary

ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/Users/roger/.julia/dev/Arpack/deps/usr)") is not satisfied, cannot generate deps.jl!
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] #write_deps_file#152(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /Users/roger/.julia/dev/BinaryProvider/src/Products.jl:408
 [3] (::getfield(BinaryProvider, Symbol("#kw##write_deps_file")))(::NamedTuple{(:verbose,),Tuple{Bool}}, ::typeof(write_deps_file), ::String, ::Array{LibraryProduct,1}) at ./none:0
 [4] top-level scope at none:0
 [5] include at ./boot.jl:317 [inlined]
 [6] include_relative(::Module, ::String) at ./loading.jl:1041
 [7] include(::Module, ::String) at ./sysimg.jl:29
 [8] exec_options(::Base.JLOptions) at ./client.jl:229
 [9] _start() at ./client.jl:421
in expression starting at /Users/roger/.julia/dev/Arpack/deps/build.jl:74

Julia version:

julia> versioninfo()
Julia Version 1.0.1
Commit 0d713926f8 (2018-09-29 19:05 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin18.0.0)
  CPU: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
  WORD_SIZE: 64
  LIBM: libimf
  LLVM: libLLVM-6.0.0 (ORCJIT, skylake)

cc: @mbeach42

Build error with `using Statistics` in startup.jl

I have using Statistics in my ~/.julia/config/startup.jl. With that in, ] build Arpack fails with

┌ Error: Error building `Arpack`: 
│ ERROR: LoadError: ArgumentError: Package Statistics not found in current path:
│ - Run `Pkg.add("Statistics")` to install the Statistics package.

If I remove the using Statistics, everything is fine.

svds fails on lower rank matrices

When svds is invoked with nsv larger than the rank of the matrix, an error is raised.
The following happens in Julia v1.0.0:

julia> using Random, Arpack;

julia> Random.seed!(0);

julia> A = randn(4, 2); B = randn(2, 7); C = A*B;

julia> F = svds(C, nsv=3)[1]
ERROR: DomainError with -4.561244018550558e-15:
sqrt will only return a complex result if called with a complex argument. Try sqrt(Complex(x)).
Stacktrace:
 [1] throw_complex_domainerror(::Symbol, ::Float64) at ./math.jl:31
 [2] sqrt at ./math.jl:479 [inlined]
 [3] _broadcast_getindex_evalf at ./broadcast.jl:574 [inlined]
 [4] _broadcast_getindex at ./broadcast.jl:547 [inlined]
 [5] getindex at ./broadcast.jl:507 [inlined]
 [6] macro expansion at ./broadcast.jl:814 [inlined]
 [7] macro expansion at ./simdloop.jl:73 [inlined]
 [8] copyto! at ./broadcast.jl:813 [inlined]
 [9] copyto! at ./broadcast.jl:768 [inlined]
 [10] copy at ./broadcast.jl:744 [inlined]
 [11] materialize(::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(sqrt),Tuple{Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1},Nothing,typeof(real),Tuple{Array{Float64,1}}}}}) at ./broadcast.jl:724
 [12] #_svds#37(::Int64, ::Bool, ::Float64, ::Int64, ::Int64, ::Array{Float64,1}, ::Function, ::Array{Float64,2}) at /Users/stellalo/.julia/packages/Arpack/Btbe4/src/Arpack.jl:329
 [13] (::getfield(Arpack, Symbol("#kw##svds")))(::NamedTuple{(:nsv,),Tuple{Int64}}, ::typeof(svds), ::Array{Float64,2}) at ./none:0
 [14] top-level scope at none:0

Edit: this is due to eigs sometimes returning (very small) negative values as "zero" eigenvalues.

Error building Arpack

I am having issues with building Arpack. I installed Julia 1.1.1 using official binaries.
I have already looked at issue #5, but I am not sure what information would be useful to me.
Am I supposed to use gcc7?
Thank you so much in advance!

julia> versioninfo()
Julia Version 1.1.1
Commit 55e36cc (2019-05-16 04:10 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin15.6.0)
  CPU: Intel(R) Core(TM) i5-6267U CPU @ 2.90GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)

(v1.1) pkg> build Arpack
  Building Arpack → `~/.julia/packages/Arpack/cu5By/deps/build.log`
┌ Error: Error building `Arpack`: 
│ [ Info: Downloading https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc8.tar.gz to /Users/juhyun-kim/.julia/packages/Arpack/cu5By/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc8.tar.gz...
│ ERROR: LoadError: Could not download https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-3/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc8.tar.gz to /Users/juhyun-kim/.julia/packages/Arpack/cu5By/deps/usr/downloads/Arpack.v3.5.0-3.x86_64-apple-darwin14-gcc8.tar.gz:
│ ErrorException("")
│ Stacktrace:
│  [1] error(::String) at ./error.jl:33
│  [2] #download#89(::Bool, ::Function, ::String, ::String) at /Users/juhyun-kim/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:498
│  [3] #download at ./none:0 [inlined]
│  [4] #download_verify#90(::Bool, ::Bool, ::Bool, ::Function, ::String, ::String, ::String) at /Users/juhyun-kim/.julia/packages/BinaryProvider/TcAwt/src/PlatformEngines.jl:567
│  [5] #download_verify at ./none:0 [inlined]
│  [6] #install#129(::Prefix, ::String, ::Bool, ::Bool, ::Bool, ::Function, ::String, ::String) at /Users/juhyun-kim/.julia/packages/BinaryProvider/TcAwt/src/Prefix.jl:314
│  [7] (::getfield(BinaryProvider, Symbol("#kw##install")))(::NamedTuple{(:prefix, :force, :verbose),Tuple{Prefix,Bool,Bool}}, ::typeof(install), ::String, ::String) at ./none:0
│  [8] top-level scope at /Users/juhyun-kim/.julia/packages/Arpack/cu5By/deps/build.jl:70
│  [9] include at ./boot.jl:326 [inlined]
│  [10] include_relative(::Module, ::String) at ./loading.jl:1038
│  [11] include(::Module, ::String) at ./sysimg.jl:29
│  [12] include(::String) at ./client.jl:403
│  [13] top-level scope at none:0
│ in expression starting at /Users/juhyun-kim/.julia/packages/Arpack/cu5By/deps/build.jl:68
│ [10:47:18] dyld: Library not loaded: @rpath/libssl.1.0.0.dylib
│ [10:47:18]   Referenced from: /Users/juhyun-kim/anaconda3/lib/libssh2.1.dylib
│ [10:47:18]   Reason: image not found
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.1/Pkg/src/Operations.jl:1075

CI failure

 Resolving package versions...
ERROR: LoadError: LoadError: ArgumentError: Package Arpack does not have Libdl in its dependencies:
- If you have Arpack checked out for development and have
  added Libdl as a dependency but haven't updated your primary
  environment's manifest file, try `Pkg.resolve()`.
- Otherwise you may need to report an issue with Arpack

Testing a package (FinEtools) that uses Arpack results in the above error both on appveyor and Travis.

Build Error on Linux

  Building Arpack → `~/.julia/packages/Arpack/WP3ru/deps/build.log`
┌ Error: Error building `Arpack`: 
│ ┌ Warning: Could not extract the platform key of https://github.com/JuliaLinearAlgebra/ArpackBuilder/releases/download/v3.5.0-0.2.20/ArpackBuilder.x86_64-linux-gnu.tar.gz; continuing...
│ └ @ BinaryProvider ~/.julia/packages/BinaryProvider/UTYxu/src/Prefix.jl:224
│ ERROR: LoadError: LibraryProduct(nothing, ["libarpack"], :libarpack, "Prefix(/home/msca8h/.julia/packages/Arpack/WP3ru/deps/usr)") is not satisfied, cannot generate deps.jl!
│ Stacktrace:
│  [1] #write_deps_file#134(::Bool, ::Function, ::String, ::Array{LibraryProduct,1}) at /home/msca8h/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:409
│  [2] write_deps_file(::String, ::Array{LibraryProduct,1}) at /home/msca8h/.julia/packages/BinaryProvider/UTYxu/src/Products.jl:396
│  [3] top-level scope at none:0
│  [4] include(::String) at ./client.jl:388
│  [5] top-level scope at none:0
│ in expression starting at /home/msca8h/.julia/packages/Arpack/WP3ru/deps/build.jl:40
└ @ Pkg.Operations /build/julia/src/julia/usr/share/julia/stdlib/v1.0/Pkg/src/Operations.jl:1068

I'm currently using Linux and libarpack is installed in /usr/lib
My version is 1.0.0
How can I fix this?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.