From 4f1995c1b981fe4f8d293803101350050edbf5f5 Mon Sep 17 00:00:00 2001 From: kalmarek Date: Wed, 29 Apr 2020 19:22:53 +0200 Subject: [PATCH] add computations of PSL eigenvalues --- Manifest.toml | 74 ++++++++++++++++++++++++++++++++++++++++++++++++--- Project.toml | 2 ++ src/PSL.jl | 19 +++++++++++++ 3 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 src/PSL.jl diff --git a/Manifest.toml b/Manifest.toml index f6e795f..9dc9ba6 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -6,6 +6,24 @@ git-tree-sha1 = "da0bf98d73f2f34c35d58981fcf139f16749a394" uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" version = "0.7.1" +[[ArnoldiMethod]] +deps = ["DelimitedFiles", "LinearAlgebra", "Random", "SparseArrays", "StaticArrays", "Test"] +git-tree-sha1 = "2b6845cea546604fb4dca4e31414a6a59d39ddcd" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.0.4" + +[[Arpack]] +deps = ["Arpack_jll", "Libdl", "LinearAlgebra"] +git-tree-sha1 = "2ff92b71ba1747c5fdd541f8fc87736d82f40ec9" +uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" +version = "0.4.0" + +[[Arpack_jll]] +deps = ["Libdl", "OpenBLAS_jll", "Pkg"] +git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7" +uuid = "68821587-b530-5797-8361-c406ea357684" +version = "3.5.0+3" + [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -81,6 +99,12 @@ git-tree-sha1 = "ed2c4abadf84c53d9e58510b5fc48912c2336fbb" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" version = "2.2.0" +[[CompilerSupportLibraries_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612" +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "0.3.3+0" + [[DataStructures]] deps = ["InteractiveUtils", "OrderedCollections"] git-tree-sha1 = "b7720de347734f4716d1815b00ce5664ed6bbfd4" @@ -162,6 +186,11 @@ git-tree-sha1 = "5c49dab19938b119fe204fd7d7e8e174f4e9c68b" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" version = "0.8.8" +[[Inflate]] +git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.2" + [[IniFile]] deps = ["Test"] git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" @@ -209,11 +238,18 @@ uuid = "1b4a561d-cfcb-5daf-8433-43fcf8b4bea3" version = "0.4.1" [[LibGit2]] +deps = ["Printf"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" [[Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +[[LightGraphs]] +deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "e85fa18ae33a3ef55243d2c2c9f6ccea6f541566" +uuid = "093fc24a-ae57-5d10-9952-331d41423f4d" +version = "1.3.2" + [[LinearAlgebra]] deps = ["Libdl"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -221,6 +257,12 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +[[MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.5" + [[Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" @@ -257,11 +299,17 @@ git-tree-sha1 = "928b8ca9b2791081dc71a51c55347c27c618760f" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "0.3.3" +[[OpenBLAS_jll]] +deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] +git-tree-sha1 = "2ee3e636e94b9fd95fa8364d5cba2e20dae16609" +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.9+2" + [[OpenSpecFun_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "65f672edebf3f4e613ddf37db9dcbd7a407e5e90" +deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] +git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.3+1" +version = "0.5.3+3" [[OrderedCollections]] deps = ["Random", "Serialization", "Test"] @@ -285,6 +333,12 @@ version = "0.3.10" deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +[[Primes]] +deps = ["Test"] +git-tree-sha1 = "ff1a2323cb468ec5f201838fcbe3c232266b1f95" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.4.0" + [[Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" @@ -305,6 +359,14 @@ version = "0.3.1" deps = ["InteractiveUtils", "Markdown", "Sockets"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +[[RamanujanGraphs]] +deps = ["LightGraphs", "LinearAlgebra", "Primes"] +git-tree-sha1 = "8d9d25a274aeec5d5265829d05784276a4841f6d" +repo-rev = "master" +repo-url = "https://github.com/kalmarek/RamanujanGraphs.jl" +uuid = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c" +version = "0.3.0" + [[Random]] deps = ["Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" @@ -336,6 +398,12 @@ version = "0.2.0" deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +[[SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "2ee666b24ab8be6a922f9d6c11a86e1a703a7dda" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.2" + [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" diff --git a/Project.toml b/Project.toml index c9a96cd..93bc13d 100644 --- a/Project.toml +++ b/Project.toml @@ -1,8 +1,10 @@ [deps] AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" +Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" GroupRings = "0befed6a-bd73-11e8-1e41-a1190947c2f5" Groups = "5d8bd718-bd84-11e8-3b40-ad14f4a32557" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" PropertyT = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d" +RamanujanGraphs = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c" SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" diff --git a/src/PSL.jl b/src/PSL.jl new file mode 100644 index 0000000..224e30f --- /dev/null +++ b/src/PSL.jl @@ -0,0 +1,19 @@ +using RamanujanGraphs +using RamanujanGraphs.LightGraphs +using Arpack + +Γ, eigenvalues = let q = 109 + a = RamanujanGraphs.PSL₂{q}([ 0 1 + 108 11]) + b = RamanujanGraphs.PSL₂{q}([57 2 + 52 42]) + + S = unique([[a^i for i in 1:4]; [b^i for i in 1:4]]) + + @info "Generating set S of $(eltype(S))" S + @time Γ, verts, vlabels, elabels = RamanujanGraphs.cayley_graph((q^3 - q)÷2, S) + @assert all(degree(Γ,i) == length(S) for i in vertices(Γ)) + A = adjacency_matrix(Γ) + @time eigenvalues, _ = eigs(A, nev=5) + @show Γ eigenvalues +end