mirror of
https://github.com/kalmarek/SmallHyperbolic
synced 2024-11-27 16:35:26 +01:00
commit
44ebfad5e4
240
Manifest.toml
240
Manifest.toml
@ -2,9 +2,21 @@
|
|||||||
|
|
||||||
[[AbstractAlgebra]]
|
[[AbstractAlgebra]]
|
||||||
deps = ["InteractiveUtils", "LinearAlgebra", "Markdown", "Random", "SparseArrays", "Test"]
|
deps = ["InteractiveUtils", "LinearAlgebra", "Markdown", "Random", "SparseArrays", "Test"]
|
||||||
git-tree-sha1 = "da0bf98d73f2f34c35d58981fcf139f16749a394"
|
git-tree-sha1 = "a203c19175c8dfa8cd61356a06bb157e973baff0"
|
||||||
uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
|
uuid = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
|
||||||
version = "0.7.1"
|
version = "0.9.2"
|
||||||
|
|
||||||
|
[[Arb_jll]]
|
||||||
|
deps = ["Artifacts", "FLINT_jll", "GMP_jll", "JLLWrappers", "Libdl", "MPFR_jll", "Pkg"]
|
||||||
|
git-tree-sha1 = "143c8de93ed3b11bbeeee44a74342874738ed773"
|
||||||
|
uuid = "d9960996-1013-53c9-9ba4-74a4155039c3"
|
||||||
|
version = "2.18.1+1"
|
||||||
|
|
||||||
|
[[Arblib]]
|
||||||
|
deps = ["Arb_jll", "LinearAlgebra", "Random", "Test"]
|
||||||
|
git-tree-sha1 = "808324c1cdee19b7714cf24ec9903168ec03ac9d"
|
||||||
|
uuid = "fb37089c-8514-4489-9461-98f9c8763369"
|
||||||
|
version = "0.1.2"
|
||||||
|
|
||||||
[[ArgParse]]
|
[[ArgParse]]
|
||||||
deps = ["Logging", "TextWrap"]
|
deps = ["Logging", "TextWrap"]
|
||||||
@ -30,6 +42,12 @@ git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7"
|
|||||||
uuid = "68821587-b530-5797-8361-c406ea357684"
|
uuid = "68821587-b530-5797-8361-c406ea357684"
|
||||||
version = "3.5.0+3"
|
version = "3.5.0+3"
|
||||||
|
|
||||||
|
[[Artifacts]]
|
||||||
|
deps = ["Pkg"]
|
||||||
|
git-tree-sha1 = "c30985d8821e0cd73870b17b0ed0ce6dc44cb744"
|
||||||
|
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
|
||||||
|
version = "1.3.0"
|
||||||
|
|
||||||
[[Base64]]
|
[[Base64]]
|
||||||
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
|
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
|
||||||
|
|
||||||
@ -58,10 +76,10 @@ uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9"
|
|||||||
version = "1.14.3+1"
|
version = "1.14.3+1"
|
||||||
|
|
||||||
[[Bzip2_jll]]
|
[[Bzip2_jll]]
|
||||||
deps = ["Libdl", "Pkg"]
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "03a44490020826950c68005cafb336e5ba08b7e8"
|
git-tree-sha1 = "c3598e525718abcc440f69cc6d5f60dda0a1b61e"
|
||||||
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
|
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
|
||||||
version = "1.0.6+4"
|
version = "1.0.6+5"
|
||||||
|
|
||||||
[[CRlibm]]
|
[[CRlibm]]
|
||||||
deps = ["Libdl"]
|
deps = ["Libdl"]
|
||||||
@ -88,22 +106,28 @@ uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
|
|||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
|
|
||||||
[[CommonSubexpressions]]
|
[[CommonSubexpressions]]
|
||||||
deps = ["Test"]
|
deps = ["MacroTools", "Test"]
|
||||||
git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0"
|
git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7"
|
||||||
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
|
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
|
||||||
version = "0.2.0"
|
version = "0.3.0"
|
||||||
|
|
||||||
|
[[Compat]]
|
||||||
|
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
|
||||||
|
git-tree-sha1 = "b0b7e8a0d054fada22b64095b46469627a138943"
|
||||||
|
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
|
||||||
|
version = "2.2.1"
|
||||||
|
|
||||||
[[CompilerSupportLibraries_jll]]
|
[[CompilerSupportLibraries_jll]]
|
||||||
deps = ["Libdl", "Pkg"]
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612"
|
git-tree-sha1 = "8e695f735fca77e9708e795eda62afdb869cbb70"
|
||||||
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
|
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
|
||||||
version = "0.3.3+0"
|
version = "0.3.4+0"
|
||||||
|
|
||||||
[[DataStructures]]
|
[[DataStructures]]
|
||||||
deps = ["InteractiveUtils", "OrderedCollections"]
|
deps = ["InteractiveUtils", "OrderedCollections"]
|
||||||
git-tree-sha1 = "af6d9c86e191c917c2276fbede1137e8ea20157f"
|
git-tree-sha1 = "88d48e133e6d3dd68183309877eac74393daa7eb"
|
||||||
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
|
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
|
||||||
version = "0.17.17"
|
version = "0.17.20"
|
||||||
|
|
||||||
[[Dates]]
|
[[Dates]]
|
||||||
deps = ["Printf"]
|
deps = ["Printf"]
|
||||||
@ -130,9 +154,15 @@ deps = ["Random", "Serialization", "Sockets"]
|
|||||||
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
|
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
|
||||||
|
|
||||||
[[ErrorfreeArithmetic]]
|
[[ErrorfreeArithmetic]]
|
||||||
git-tree-sha1 = "a5198ab6c8a724dd3965b31ddd11ccde65300f5b"
|
git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686"
|
||||||
uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a"
|
uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a"
|
||||||
version = "0.5.0"
|
version = "0.5.2"
|
||||||
|
|
||||||
|
[[FLINT_jll]]
|
||||||
|
deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "MPFR_jll", "Pkg"]
|
||||||
|
git-tree-sha1 = "f9930b0050cd60d854b10c1de88aae0dac37d44a"
|
||||||
|
uuid = "e134572f-a0d5-539d-bddf-3cad8db41a82"
|
||||||
|
version = "2.6.3+1"
|
||||||
|
|
||||||
[[FastRounding]]
|
[[FastRounding]]
|
||||||
deps = ["ErrorfreeArithmetic", "Test"]
|
deps = ["ErrorfreeArithmetic", "Test"]
|
||||||
@ -142,49 +172,55 @@ version = "0.2.0"
|
|||||||
|
|
||||||
[[FileIO]]
|
[[FileIO]]
|
||||||
deps = ["Pkg"]
|
deps = ["Pkg"]
|
||||||
git-tree-sha1 = "202335fd24c2776493e198d6c66a6d910400a895"
|
git-tree-sha1 = "cad2e71389ecb2f4480e0de74faab04af13d7929"
|
||||||
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
|
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
|
||||||
version = "1.3.0"
|
version = "1.4.4"
|
||||||
|
|
||||||
[[ForwardDiff]]
|
[[ForwardDiff]]
|
||||||
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"]
|
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"]
|
||||||
git-tree-sha1 = "869540e4367122fbffaace383a5bdc34d6e5e5ac"
|
git-tree-sha1 = "1d090099fb82223abc48f7ce176d3f7696ede36d"
|
||||||
uuid = "f6369f11-7733-5829-9624-2563aa707210"
|
uuid = "f6369f11-7733-5829-9624-2563aa707210"
|
||||||
version = "0.10.10"
|
version = "0.10.12"
|
||||||
|
|
||||||
|
[[GMP_jll]]
|
||||||
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "15abc5f976569a1c9d651aff02f7222ef305eb2a"
|
||||||
|
uuid = "781609d7-10c4-51f6-84f2-b8444358ff6d"
|
||||||
|
version = "6.1.2+6"
|
||||||
|
|
||||||
[[GroupRings]]
|
[[GroupRings]]
|
||||||
deps = ["AbstractAlgebra", "LinearAlgebra", "Markdown", "SparseArrays"]
|
deps = ["AbstractAlgebra", "Groups", "LinearAlgebra", "SparseArrays"]
|
||||||
git-tree-sha1 = "8a9541783cff6911e35840770d0f004c0d2a13dd"
|
git-tree-sha1 = "76e662a5473866f4f02ed4df2e83af4d531b419c"
|
||||||
repo-rev = "master"
|
repo-rev = "master"
|
||||||
repo-url = "https://github.com/kalmarek/GroupRings.jl"
|
repo-url = "https://github.com/kalmarek/GroupRings.jl"
|
||||||
uuid = "0befed6a-bd73-11e8-1e41-a1190947c2f5"
|
uuid = "0befed6a-bd73-11e8-1e41-a1190947c2f5"
|
||||||
version = "0.3.0"
|
version = "0.3.2"
|
||||||
|
|
||||||
[[Groups]]
|
[[Groups]]
|
||||||
deps = ["AbstractAlgebra", "LinearAlgebra", "Markdown"]
|
deps = ["AbstractAlgebra", "LinearAlgebra", "Markdown"]
|
||||||
git-tree-sha1 = "2487fd5e6106dabcafb835b694df08b4d22dde0e"
|
git-tree-sha1 = "479214998d4769d31a8ff65d0f43152eb191850f"
|
||||||
repo-rev = "master"
|
repo-rev = "master"
|
||||||
repo-url = "https://github.com/kalmarek/Groups.jl"
|
repo-url = "https://github.com/kalmarek/Groups.jl"
|
||||||
uuid = "5d8bd718-bd84-11e8-3b40-ad14f4a32557"
|
uuid = "5d8bd718-bd84-11e8-3b40-ad14f4a32557"
|
||||||
version = "0.3.0"
|
version = "0.4.2"
|
||||||
|
|
||||||
[[HDF5]]
|
[[HDF5]]
|
||||||
deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"]
|
deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"]
|
||||||
git-tree-sha1 = "7048678fa1970aaf867f3e99b90f3e85a9847124"
|
git-tree-sha1 = "0713cbabdf855852dfab3ce6447c87145f3d9ea8"
|
||||||
uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
||||||
version = "0.13.2"
|
version = "0.13.6"
|
||||||
|
|
||||||
[[HDF5_jll]]
|
[[HDF5_jll]]
|
||||||
deps = ["Libdl", "Pkg", "Zlib_jll"]
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"]
|
||||||
git-tree-sha1 = "3dbc683172cb53428907485a4bb98a29d3874083"
|
git-tree-sha1 = "bc9c3d43ffd4d8988bfa372b86d4bdbd26860e95"
|
||||||
uuid = "0234f1f7-429e-5d53-9886-15a909be8d59"
|
uuid = "0234f1f7-429e-5d53-9886-15a909be8d59"
|
||||||
version = "1.10.5+6"
|
version = "1.10.5+7"
|
||||||
|
|
||||||
[[HTTP]]
|
[[HTTP]]
|
||||||
deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"]
|
deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"]
|
||||||
git-tree-sha1 = "fe31f4ff144392ad8176f5c7c03cca6ba320271c"
|
git-tree-sha1 = "c7ec02c4c6a039a98a15f955462cd7aea5df4508"
|
||||||
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
|
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
|
||||||
version = "0.8.14"
|
version = "0.8.19"
|
||||||
|
|
||||||
[[Inflate]]
|
[[Inflate]]
|
||||||
git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c"
|
git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c"
|
||||||
@ -202,34 +238,45 @@ deps = ["Markdown"]
|
|||||||
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
|
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
|
||||||
|
|
||||||
[[IntervalArithmetic]]
|
[[IntervalArithmetic]]
|
||||||
deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"]
|
deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "SetRounding", "StaticArrays"]
|
||||||
git-tree-sha1 = "b502bb7fba674f4b98202c5da0b17f86d8a3f48e"
|
git-tree-sha1 = "b2db6ee367b4eb3ee8b009ede8ca809e4fd23d35"
|
||||||
uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
|
uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
|
||||||
version = "0.17.2"
|
version = "0.16.7"
|
||||||
|
|
||||||
[[JLD]]
|
[[JLD]]
|
||||||
deps = ["FileIO", "HDF5", "Printf"]
|
deps = ["Compat", "FileIO", "HDF5", "LegacyStrings"]
|
||||||
git-tree-sha1 = "f6cf928214ae7c0e7550b2424a57f11875d7e49a"
|
git-tree-sha1 = "c8c7a9ca4c17a519961a8ec27e508b07ffc9c1a9"
|
||||||
uuid = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
|
uuid = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
|
||||||
version = "0.10.0"
|
version = "0.9.2"
|
||||||
|
|
||||||
|
[[JLLWrappers]]
|
||||||
|
git-tree-sha1 = "c70593677bbf2c3ccab4f7500d0f4dacfff7b75c"
|
||||||
|
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
|
||||||
|
version = "1.1.3"
|
||||||
|
|
||||||
[[JSON]]
|
[[JSON]]
|
||||||
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
|
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
|
||||||
git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e"
|
git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4"
|
||||||
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
|
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
|
||||||
version = "0.21.0"
|
version = "0.21.1"
|
||||||
|
|
||||||
[[JSONSchema]]
|
[[JSONSchema]]
|
||||||
deps = ["BinaryProvider", "HTTP", "JSON"]
|
deps = ["HTTP", "JSON", "ZipFile"]
|
||||||
git-tree-sha1 = "b0a7f9328967df5213691d318a03cf70ea8c76b1"
|
git-tree-sha1 = "a9ecdbc90be216912a2e3e8a8e38dc4c93f0d065"
|
||||||
uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692"
|
uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692"
|
||||||
version = "0.2.0"
|
version = "0.3.2"
|
||||||
|
|
||||||
[[JuMP]]
|
[[JuMP]]
|
||||||
deps = ["Calculus", "DataStructures", "ForwardDiff", "LinearAlgebra", "MathOptInterface", "MutableArithmetics", "NaNMath", "Random", "SparseArrays", "Statistics"]
|
deps = ["Calculus", "DataStructures", "ForwardDiff", "LinearAlgebra", "MathOptInterface", "NaNMath", "Random", "SparseArrays", "Statistics"]
|
||||||
git-tree-sha1 = "84c1cf8bec4729b8b2ef4dfc4e1db1b892ad0d30"
|
git-tree-sha1 = "ba7f96010ed290d77d5c941c32e5df107ca688a4"
|
||||||
uuid = "4076af6c-e467-56ae-b986-b466b2749572"
|
uuid = "4076af6c-e467-56ae-b986-b466b2749572"
|
||||||
version = "0.21.2"
|
version = "0.20.1"
|
||||||
|
|
||||||
|
[[LegacyStrings]]
|
||||||
|
deps = ["Compat"]
|
||||||
|
git-tree-sha1 = "d4b9bde2694c552fe579cc4462733f1ce08733fe"
|
||||||
|
uuid = "1b4a561d-cfcb-5daf-8433-43fcf8b4bea3"
|
||||||
|
version = "0.4.1"
|
||||||
|
|
||||||
[[LibGit2]]
|
[[LibGit2]]
|
||||||
deps = ["Printf"]
|
deps = ["Printf"]
|
||||||
@ -257,11 +304,17 @@ git-tree-sha1 = "51b1db0732bbdcfabb60e36095cc3ed9c0016932"
|
|||||||
uuid = "5ced341a-0733-55b8-9ab6-a4889d929147"
|
uuid = "5ced341a-0733-55b8-9ab6-a4889d929147"
|
||||||
version = "1.9.2+2"
|
version = "1.9.2+2"
|
||||||
|
|
||||||
|
[[MPFR_jll]]
|
||||||
|
deps = ["GMP_jll", "Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "301ce96952df90bbaa2c66112b7c1f15ced2b55b"
|
||||||
|
uuid = "3a97d323-0669-5f0c-9066-3539efd106a3"
|
||||||
|
version = "4.1.0+1"
|
||||||
|
|
||||||
[[MacroTools]]
|
[[MacroTools]]
|
||||||
deps = ["Markdown", "Random"]
|
deps = ["Markdown", "Random"]
|
||||||
git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a"
|
git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0"
|
||||||
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
|
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
|
||||||
version = "0.5.5"
|
version = "0.5.6"
|
||||||
|
|
||||||
[[Markdown]]
|
[[Markdown]]
|
||||||
deps = ["Base64"]
|
deps = ["Base64"]
|
||||||
@ -269,9 +322,9 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
|
|||||||
|
|
||||||
[[MathOptInterface]]
|
[[MathOptInterface]]
|
||||||
deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "JSON", "JSONSchema", "LinearAlgebra", "MutableArithmetics", "OrderedCollections", "SparseArrays", "Test", "Unicode"]
|
deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "JSON", "JSONSchema", "LinearAlgebra", "MutableArithmetics", "OrderedCollections", "SparseArrays", "Test", "Unicode"]
|
||||||
git-tree-sha1 = "27f2ef85879b8f1d144266ab44f076ba0dfbd8a1"
|
git-tree-sha1 = "4fd15565d1811be771e87a877f1e691a005d2b90"
|
||||||
uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
|
uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
|
||||||
version = "0.9.13"
|
version = "0.9.18"
|
||||||
|
|
||||||
[[MathProgBase]]
|
[[MathProgBase]]
|
||||||
deps = ["LinearAlgebra", "SparseArrays"]
|
deps = ["LinearAlgebra", "SparseArrays"]
|
||||||
@ -281,35 +334,29 @@ version = "0.7.8"
|
|||||||
|
|
||||||
[[MbedTLS]]
|
[[MbedTLS]]
|
||||||
deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"]
|
deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"]
|
||||||
git-tree-sha1 = "426a6978b03a97ceb7ead77775a1da066343ec6e"
|
git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe"
|
||||||
uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
|
uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
|
||||||
version = "1.0.2"
|
version = "1.0.3"
|
||||||
|
|
||||||
[[MbedTLS_jll]]
|
[[MbedTLS_jll]]
|
||||||
deps = ["Libdl", "Pkg"]
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "c83f5a1d038f034ad0549f9ee4d5fac3fb429e33"
|
git-tree-sha1 = "0eef589dd1c26a3ac9d753fe1a8bcad63f956fa6"
|
||||||
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
|
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
|
||||||
version = "2.16.0+2"
|
version = "2.16.8+1"
|
||||||
|
|
||||||
[[Mmap]]
|
[[Mmap]]
|
||||||
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
|
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
|
||||||
|
|
||||||
[[MutableArithmetics]]
|
[[MutableArithmetics]]
|
||||||
deps = ["LinearAlgebra", "SparseArrays", "Test"]
|
deps = ["LinearAlgebra", "SparseArrays", "Test"]
|
||||||
git-tree-sha1 = "e1edd618a8f39d16f8595dd622a63b25f759cf8a"
|
git-tree-sha1 = "7631203bddc2424717fa42ecda2a5fed9ff36af0"
|
||||||
uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0"
|
uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0"
|
||||||
version = "0.2.9"
|
version = "0.2.12"
|
||||||
|
|
||||||
[[NaNMath]]
|
[[NaNMath]]
|
||||||
git-tree-sha1 = "928b8ca9b2791081dc71a51c55347c27c618760f"
|
git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd"
|
||||||
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
|
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
|
||||||
version = "0.3.3"
|
version = "0.3.4"
|
||||||
|
|
||||||
[[Nemo]]
|
|
||||||
deps = ["AbstractAlgebra", "BinaryProvider", "InteractiveUtils", "Libdl", "LinearAlgebra", "Markdown", "Random", "Test"]
|
|
||||||
git-tree-sha1 = "0db7e2b72bd67770d61ae2af18376a78d817816c"
|
|
||||||
uuid = "2edaba10-b0f1-5616-af89-8c11ac63239a"
|
|
||||||
version = "0.15.1"
|
|
||||||
|
|
||||||
[[OpenBLAS_jll]]
|
[[OpenBLAS_jll]]
|
||||||
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
|
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
|
||||||
@ -318,21 +365,21 @@ uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
|
|||||||
version = "0.3.9+5"
|
version = "0.3.9+5"
|
||||||
|
|
||||||
[[OpenSpecFun_jll]]
|
[[OpenSpecFun_jll]]
|
||||||
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
|
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87"
|
git-tree-sha1 = "9db77584158d0ab52307f8c04f8e7c08ca76b5b3"
|
||||||
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
|
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
|
||||||
version = "0.5.3+3"
|
version = "0.5.3+4"
|
||||||
|
|
||||||
[[OrderedCollections]]
|
[[OrderedCollections]]
|
||||||
git-tree-sha1 = "12ce190210d278e12644bcadf5b21cbdcf225cd3"
|
git-tree-sha1 = "cf59cfed2e2c12e8a2ff0a4f1e9b2cd8650da6db"
|
||||||
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
|
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
|
||||||
version = "1.2.0"
|
version = "1.3.2"
|
||||||
|
|
||||||
[[Parsers]]
|
[[Parsers]]
|
||||||
deps = ["Dates", "Test"]
|
deps = ["Dates"]
|
||||||
git-tree-sha1 = "f0abb338b4d00306500056a3fd44c221b8473ef2"
|
git-tree-sha1 = "b417be52e8be24e916e34b3d70ec2da7bdf56a68"
|
||||||
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
|
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
|
||||||
version = "1.0.4"
|
version = "1.0.12"
|
||||||
|
|
||||||
[[Pkg]]
|
[[Pkg]]
|
||||||
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
|
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
|
||||||
@ -349,12 +396,12 @@ deps = ["Unicode"]
|
|||||||
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
|
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
|
||||||
|
|
||||||
[[PropertyT]]
|
[[PropertyT]]
|
||||||
deps = ["AbstractAlgebra", "Dates", "GroupRings", "Groups", "IntervalArithmetic", "JLD", "JuMP", "LinearAlgebra", "Markdown", "MathProgBase", "Printf", "SparseArrays"]
|
deps = ["AbstractAlgebra", "Dates", "GroupRings", "Groups", "IntervalArithmetic", "JLD", "JuMP", "LinearAlgebra", "SparseArrays"]
|
||||||
git-tree-sha1 = "38850493c08470c23a8f2d86ad69fc450232c585"
|
git-tree-sha1 = "599ef6d6ba280f3be5dff8d8afdc308fbbcea4df"
|
||||||
repo-rev = "master"
|
repo-rev = "master"
|
||||||
repo-url = "https://github.com/kalmarek/PropertyT.jl"
|
repo-url = "https://github.com/kalmarek/PropertyT.jl"
|
||||||
uuid = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d"
|
uuid = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d"
|
||||||
version = "0.3.1"
|
version = "0.3.2"
|
||||||
|
|
||||||
[[REPL]]
|
[[REPL]]
|
||||||
deps = ["InteractiveUtils", "Markdown", "Sockets"]
|
deps = ["InteractiveUtils", "Markdown", "Sockets"]
|
||||||
@ -362,31 +409,26 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
|
|||||||
|
|
||||||
[[RamanujanGraphs]]
|
[[RamanujanGraphs]]
|
||||||
deps = ["LightGraphs", "LinearAlgebra", "Primes"]
|
deps = ["LightGraphs", "LinearAlgebra", "Primes"]
|
||||||
git-tree-sha1 = "f623b007eda4cd5857953ba6735f1d1395175bab"
|
git-tree-sha1 = "41fcab9bc21463a9d52bd481b7986d5271f36607"
|
||||||
repo-rev = "master"
|
repo-rev = "master"
|
||||||
repo-url = "https://github.com/kalmarek/RamanujanGraphs.jl"
|
repo-url = "https://github.com/kalmarek/RamanujanGraphs.jl"
|
||||||
uuid = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c"
|
uuid = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
|
|
||||||
[[Random]]
|
[[Random]]
|
||||||
deps = ["Serialization"]
|
deps = ["Serialization"]
|
||||||
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
|
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
|
||||||
|
|
||||||
[[RecipesBase]]
|
[[RecipesBase]]
|
||||||
git-tree-sha1 = "54f8ceb165a0f6d083f0d12cb4996f5367c6edbc"
|
git-tree-sha1 = "b4ed4a7f988ea2340017916f7c9e5d7560b52cae"
|
||||||
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
|
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
|
||||||
version = "1.0.1"
|
version = "0.8.0"
|
||||||
|
|
||||||
[[RoundingEmulator]]
|
|
||||||
git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b"
|
|
||||||
uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705"
|
|
||||||
version = "0.2.1"
|
|
||||||
|
|
||||||
[[SCS]]
|
[[SCS]]
|
||||||
deps = ["BinaryProvider", "Libdl", "LinearAlgebra", "MathOptInterface", "MathProgBase", "SparseArrays"]
|
deps = ["BinaryProvider", "Libdl", "LinearAlgebra", "MathOptInterface", "MathProgBase", "SparseArrays"]
|
||||||
git-tree-sha1 = "5cb256630995eb94526065c4350ce8338947121d"
|
git-tree-sha1 = "936d43feaceae3290472ddf800b496be094d727b"
|
||||||
uuid = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
|
uuid = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
|
||||||
version = "0.6.3"
|
version = "0.6.6"
|
||||||
|
|
||||||
[[SHA]]
|
[[SHA]]
|
||||||
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
|
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
|
||||||
@ -406,9 +448,9 @@ uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
|
|||||||
|
|
||||||
[[SimpleTraits]]
|
[[SimpleTraits]]
|
||||||
deps = ["InteractiveUtils", "MacroTools"]
|
deps = ["InteractiveUtils", "MacroTools"]
|
||||||
git-tree-sha1 = "2ee666b24ab8be6a922f9d6c11a86e1a703a7dda"
|
git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226"
|
||||||
uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d"
|
uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d"
|
||||||
version = "0.9.2"
|
version = "0.9.3"
|
||||||
|
|
||||||
[[Sockets]]
|
[[Sockets]]
|
||||||
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
|
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
|
||||||
@ -425,9 +467,9 @@ version = "0.10.3"
|
|||||||
|
|
||||||
[[StaticArrays]]
|
[[StaticArrays]]
|
||||||
deps = ["LinearAlgebra", "Random", "Statistics"]
|
deps = ["LinearAlgebra", "Random", "Statistics"]
|
||||||
git-tree-sha1 = "5c06c0aeb81bef54aed4b3f446847905eb6cbda0"
|
git-tree-sha1 = "da4cf579416c81994afd6322365d00916c79b8ae"
|
||||||
uuid = "90137ffa-7385-5640-81b9-e52037218182"
|
uuid = "90137ffa-7385-5640-81b9-e52037218182"
|
||||||
version = "0.12.3"
|
version = "0.12.5"
|
||||||
|
|
||||||
[[Statistics]]
|
[[Statistics]]
|
||||||
deps = ["LinearAlgebra", "SparseArrays"]
|
deps = ["LinearAlgebra", "SparseArrays"]
|
||||||
@ -455,14 +497,20 @@ uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
|
|||||||
[[Unicode]]
|
[[Unicode]]
|
||||||
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
|
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
|
||||||
|
|
||||||
|
[[ZipFile]]
|
||||||
|
deps = ["Libdl", "Printf", "Zlib_jll"]
|
||||||
|
git-tree-sha1 = "c3a5637e27e914a7a445b8d0ad063d701931e9f7"
|
||||||
|
uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea"
|
||||||
|
version = "0.9.3"
|
||||||
|
|
||||||
[[Zlib_jll]]
|
[[Zlib_jll]]
|
||||||
deps = ["Libdl", "Pkg"]
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "fdd89e5ab270ea0f2a0174bd9093e557d06d4bfa"
|
git-tree-sha1 = "320228915c8debb12cb434c59057290f0834dbf6"
|
||||||
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
|
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
|
||||||
version = "1.2.11+16"
|
version = "1.2.11+18"
|
||||||
|
|
||||||
[[Zstd_jll]]
|
[[Zstd_jll]]
|
||||||
deps = ["Libdl", "Pkg"]
|
deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "4de91f4313d9e88162d461e282fe3066ab3a3c09"
|
git-tree-sha1 = "6f1abcb0c44f184690912aa4b0ba861dd64f11b9"
|
||||||
uuid = "3161d3a3-bdf6-5164-811a-617609db77b4"
|
uuid = "3161d3a3-bdf6-5164-811a-617609db77b4"
|
||||||
version = "1.4.5+1"
|
version = "1.4.5+2"
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
[deps]
|
[deps]
|
||||||
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
|
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
|
||||||
|
Arblib = "fb37089c-8514-4489-9461-98f9c8763369"
|
||||||
ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63"
|
ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63"
|
||||||
|
ArnoldiMethod = "ec485272-7323-5ecc-a04f-4719b315124d"
|
||||||
Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
|
Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
|
||||||
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
|
Dates = "ade2ca70-3891-5945-98fb-dc099432e06a"
|
||||||
DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab"
|
DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab"
|
||||||
GroupRings = "0befed6a-bd73-11e8-1e41-a1190947c2f5"
|
GroupRings = "0befed6a-bd73-11e8-1e41-a1190947c2f5"
|
||||||
Groups = "5d8bd718-bd84-11e8-3b40-ad14f4a32557"
|
Groups = "5d8bd718-bd84-11e8-3b40-ad14f4a32557"
|
||||||
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
|
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
|
||||||
Nemo = "2edaba10-b0f1-5616-af89-8c11ac63239a"
|
|
||||||
PropertyT = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d"
|
PropertyT = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d"
|
||||||
RamanujanGraphs = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c"
|
RamanujanGraphs = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c"
|
||||||
SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
|
SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
using RamanujanGraphs
|
using RamanujanGraphs
|
||||||
using LinearAlgebra
|
using LinearAlgebra
|
||||||
using Nemo
|
using Arblib
|
||||||
using ArgParse
|
using ArgParse
|
||||||
|
|
||||||
using Logging
|
using Logging
|
||||||
using Dates
|
using Dates
|
||||||
|
|
||||||
include("src/nemo_utils.jl")
|
import RamanujanGraphs.Primes: isprime
|
||||||
|
|
||||||
function SL2p_gens(p)
|
include(joinpath(@__DIR__, "src", "eigen_utils.jl"))
|
||||||
|
|
||||||
|
function SL2p_gens(p::Integer)
|
||||||
|
@assert isprime(p)
|
||||||
if p == 31
|
if p == 31
|
||||||
a, b = let
|
a, b = let
|
||||||
a = SL₂{p}([8 14; 4 11])
|
a = SL₂{p}([8 14; 4 11])
|
||||||
@ -57,11 +60,18 @@ function SL2p_gens(p)
|
|||||||
return a,b
|
return a,b
|
||||||
end
|
end
|
||||||
|
|
||||||
function adjacency(ϱ, CC, a, b)
|
function adjacency(ϱ, a, b; prec=256)
|
||||||
A = matrix(CC, ϱ(a))
|
order_a = findfirst(i-> isone(a^i), 1:100)
|
||||||
B = matrix(CC, ϱ(b))
|
order_b = findfirst(i-> isone(b^i), 1:100)
|
||||||
|
@assert !isnothing(order_a) && order_a > 1
|
||||||
|
@assert !isnothing(order_b) && order_b > 1
|
||||||
|
|
||||||
return sum(A^i for i = 1:4) + sum(B^i for i = 1:4)
|
k = order_a-1 + order_b-1
|
||||||
|
|
||||||
|
A = AcbMatrix(ϱ(a), prec=prec)
|
||||||
|
B = AcbMatrix(ϱ(b), prec=prec)
|
||||||
|
res = sum(A^i for i = 1:order_a-1) + sum(B^i for i = 1:order_b-1)
|
||||||
|
return Arblib.scalar_div!(res, res, k)
|
||||||
end
|
end
|
||||||
|
|
||||||
function parse_our_args()
|
function parse_our_args()
|
||||||
@ -77,6 +87,10 @@ function parse_our_args()
|
|||||||
help = "generator b (optional)"
|
help = "generator b (optional)"
|
||||||
"--ab"
|
"--ab"
|
||||||
help = "array of generators a and b (optional)"
|
help = "array of generators a and b (optional)"
|
||||||
|
"--precision"
|
||||||
|
help = "set the precision of computations"
|
||||||
|
arg_type = Int
|
||||||
|
default = 128
|
||||||
end
|
end
|
||||||
|
|
||||||
result = parse_args(s)
|
result = parse_args(s)
|
||||||
@ -98,21 +112,19 @@ end
|
|||||||
|
|
||||||
parsed_args = parse_our_args()
|
parsed_args = parse_our_args()
|
||||||
|
|
||||||
const p = try
|
const p = let p = parsed_args["p"]
|
||||||
p = parsed_args["p"]
|
isprime(p) || @error "You need to provide a prime, ex: `julia adj_psl2_eigvals.jl -p 31`"
|
||||||
RamanujanGraphs.Primes.isprime(p)
|
|
||||||
p
|
p
|
||||||
catch ex
|
|
||||||
@error "You need to provide a prime, ex: `julia adj_psl2_eigvals.jl -p 31`"
|
|
||||||
rethrow(ex)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
const LOGFILE = "SL(2,$p)_eigvals_$(now()).log"
|
const PRECISION = parsed_args["precision"]
|
||||||
|
const LOGFILE = joinpath("log", "SL(2,$p)_eigvals_$(now()).log")
|
||||||
|
|
||||||
open(joinpath("log", LOGFILE), "w") do io
|
open(LOGFILE, "w") do io
|
||||||
|
@info "Logging into $LOGFILE"
|
||||||
with_logger(SimpleLogger(io)) do
|
with_logger(SimpleLogger(io)) do
|
||||||
|
|
||||||
CC = AcbField(128)
|
@info "Arguments:" args=parsed_args
|
||||||
|
|
||||||
a,b = SL2p_gens(p)
|
a,b = SL2p_gens(p)
|
||||||
a = SL₂{p}(get(parsed_args, "a", a))
|
a = SL₂{p}(get(parsed_args, "a", a))
|
||||||
@ -126,24 +138,24 @@ open(joinpath("log", LOGFILE), "w") do io
|
|||||||
RamanujanGraphs.CosetDecomposition(SL2p, Borel(SL₂{p}))
|
RamanujanGraphs.CosetDecomposition(SL2p, Borel(SL₂{p}))
|
||||||
end
|
end
|
||||||
|
|
||||||
all_large_evs = []
|
all_large_evs = Arb[]
|
||||||
let α = RamanujanGraphs.generator(RamanujanGraphs.GF{p}(0))
|
let α = RamanujanGraphs.generator(RamanujanGraphs.GF{p}(0))
|
||||||
|
|
||||||
for j = 0:(p-1)÷4
|
for j = 0:(p-1)÷4
|
||||||
h = PrincipalRepr(
|
h = PrincipalRepr(
|
||||||
α => root_of_unity(CC, (p - 1) ÷ 2, j),
|
α => unit_root((p - 1) ÷ 2, j, prec=PRECISION),
|
||||||
Borel_cosets,
|
Borel_cosets,
|
||||||
)
|
)
|
||||||
|
|
||||||
@time adj = adjacency(h, CC, a, b)
|
@time adj = adjacency(h, a, b, prec=PRECISION)
|
||||||
|
|
||||||
try
|
try
|
||||||
@time ev = let evs = safe_eigvals(adj)
|
@time evs = let evs = safe_eigvals(adj)
|
||||||
_count_multiplicites(evs)
|
count_multiplicites(evs)
|
||||||
end
|
end
|
||||||
all_large_evs = vcat(all_large_evs, [Float64(real(x[1])) for x in ev[1:2]])
|
append!(all_large_evs, [real(first(x)) for x in evs[1:2]])
|
||||||
|
|
||||||
@info "Principal Series Representation $j" ev[1:2] ev[end]
|
@info "Principal Series Representation $j" evs[1:2] evs[end]
|
||||||
catch ex
|
catch ex
|
||||||
@error "Principal Series Representation $j failed" ex
|
@error "Principal Series Representation $j failed" ex
|
||||||
ex isa InterruptException && rethrow(ex)
|
ex isa InterruptException && rethrow(ex)
|
||||||
@ -156,28 +168,28 @@ open(joinpath("log", LOGFILE), "w") do io
|
|||||||
|
|
||||||
if p % 4 == 1
|
if p % 4 == 1
|
||||||
ub = (p - 1) ÷ 4
|
ub = (p - 1) ÷ 4
|
||||||
ζ = root_of_unity(CC, (p + 1) ÷ 2, 1)
|
ζ = unit_root((p + 1) ÷ 2, 1, prec=PRECISION)
|
||||||
else # p % 4 == 3
|
else # p % 4 == 3
|
||||||
ub = (p + 1) ÷ 4
|
ub = (p + 1) ÷ 4
|
||||||
ζ = root_of_unity(CC, (p + 1), 1)
|
ζ = unit_root((p + 1), 1, prec=PRECISION)
|
||||||
end
|
end
|
||||||
|
|
||||||
for k = 1:ub
|
for k = 1:ub
|
||||||
|
|
||||||
h = DiscreteRepr(
|
h = DiscreteRepr(
|
||||||
RamanujanGraphs.GF{p}(1) => root_of_unity(CC, p),
|
RamanujanGraphs.GF{p}(1) => unit_root(p, prec=PRECISION),
|
||||||
β => ζ^k,
|
β => ζ^k,
|
||||||
)
|
)
|
||||||
|
|
||||||
@time adj = adjacency(h, CC, a, b)
|
@time adj = adjacency(h, a, b, prec=PRECISION)
|
||||||
|
|
||||||
try
|
try
|
||||||
@time ev = let evs = safe_eigvals(adj)
|
@time evs = let evs = safe_eigvals(adj)
|
||||||
_count_multiplicites(evs)
|
count_multiplicites(evs)
|
||||||
end
|
end
|
||||||
all_large_evs = vcat(all_large_evs, [Float64(real(x[1])) for x in ev[1:2]])
|
append!(all_large_evs, [real(first(x)) for x in evs[1:2]])
|
||||||
|
|
||||||
@info "Discrete Series Representation $k" ev[1:2] ev[end]
|
@info "Discrete Series Representation $k" evs[1:2] evs[end]
|
||||||
catch ex
|
catch ex
|
||||||
@error "Discrete Series Representation $k : failed" ex
|
@error "Discrete Series Representation $k : failed" ex
|
||||||
ex isa InterruptException && rethrow(ex)
|
ex isa InterruptException && rethrow(ex)
|
||||||
@ -188,8 +200,8 @@ open(joinpath("log", LOGFILE), "w") do io
|
|||||||
λ = all_large_evs[2]
|
λ = all_large_evs[2]
|
||||||
ε = (λ - 3)/5
|
ε = (λ - 3)/5
|
||||||
α = acos(ε)
|
α = acos(ε)
|
||||||
α_deg = α/pi*180
|
α_deg = (α/pi)*180
|
||||||
@info "Numerically" λ ε α α_deg
|
@info "Certified values:" λ ε α α_deg
|
||||||
end # with_logger
|
end # with_logger
|
||||||
end # open(logfile)
|
end # open(logfile)
|
||||||
|
|
||||||
|
43
src/eigen_utils.jl
Normal file
43
src/eigen_utils.jl
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
function unit_root(order::Integer, pow::Integer = 1; prec = Arblib.DEFAULT_PRECISION[])
|
||||||
|
@assert order > 0
|
||||||
|
res = Acb(; prec = prec)
|
||||||
|
Arblib.unit_root!(res, UInt(order), prec = prec)
|
||||||
|
return Arblib.pow!(res, res, pow)
|
||||||
|
end
|
||||||
|
|
||||||
|
similarity_transform(A::AcbMatrix) = similarity_transform!(similar(A), A)
|
||||||
|
|
||||||
|
function similarity_transform!(res::AcbMatrix, A::AcbMatrix)
|
||||||
|
@assert size(res) == size(A)
|
||||||
|
|
||||||
|
X = similar(A)
|
||||||
|
X .= rand(Acb(prec = precision(A)), size(X))
|
||||||
|
|
||||||
|
Arblib.inv!(res, X)
|
||||||
|
res = Arblib.mul!(res, A, res)
|
||||||
|
res = Arblib.mul!(res, X, res)
|
||||||
|
return res
|
||||||
|
end
|
||||||
|
|
||||||
|
function safe_eigvals(A::AcbMatrix)
|
||||||
|
λs = Arblib.eig_multiple_rump(similarity_transform(A))
|
||||||
|
all(isfinite.(λs)) && return λs
|
||||||
|
throw("Eigenvalue computation was not successful: Arblib returned infinite values.")
|
||||||
|
end
|
||||||
|
|
||||||
|
function count_multiplicites(evs)
|
||||||
|
λ_m = Vector{Tuple{Acb,Int}}()
|
||||||
|
sizehint!(λ_m, length(evs))
|
||||||
|
i = 1
|
||||||
|
while i <= length(evs)
|
||||||
|
m = 0
|
||||||
|
v = evs[i]
|
||||||
|
while i + m <= length(evs) && isequal(evs[i], evs[i+m])
|
||||||
|
m += 1
|
||||||
|
end
|
||||||
|
@assert m > 0
|
||||||
|
push!(λ_m, (evs[i], m))
|
||||||
|
i += m
|
||||||
|
end
|
||||||
|
return sort(λ_m, lt = (a, b) -> (real(first(a)) < real(first(b))), rev = true)
|
||||||
|
end
|
@ -1,199 +0,0 @@
|
|||||||
const libarb = Nemo.libarb
|
|
||||||
|
|
||||||
Base.hash(a::acb, h::UInt) = h
|
|
||||||
Base.reim(x::acb) = reim(convert(ComplexF64, x))
|
|
||||||
|
|
||||||
function root_of_unity(CC::AcbField, p, k = 1)
|
|
||||||
@assert p > 0
|
|
||||||
res = zero(CC)
|
|
||||||
ccall(
|
|
||||||
(:acb_unit_root, libarb),
|
|
||||||
Cvoid,
|
|
||||||
(Ref{acb}, Culong, Clong),
|
|
||||||
res,
|
|
||||||
p,
|
|
||||||
prec(CC),
|
|
||||||
)
|
|
||||||
return res^k
|
|
||||||
end
|
|
||||||
|
|
||||||
import Base.adjoint
|
|
||||||
function Base.adjoint(m::acb_mat)
|
|
||||||
res = zero(m)
|
|
||||||
ccall(
|
|
||||||
(:acb_mat_conjugate_transpose, libarb),
|
|
||||||
Cvoid,
|
|
||||||
(Ref{acb_mat}, Ref{acb_mat}),
|
|
||||||
res,
|
|
||||||
m,
|
|
||||||
)
|
|
||||||
return res
|
|
||||||
end
|
|
||||||
|
|
||||||
using Random
|
|
||||||
import Base.rand
|
|
||||||
|
|
||||||
rand(rng::AbstractRNG, rs::Random.SamplerTrivial{AcbField}) =
|
|
||||||
(CC = rs[]; CC(rand(Float64), rand(Float64)))
|
|
||||||
|
|
||||||
|
|
||||||
import Nemo.acb_struct
|
|
||||||
|
|
||||||
mutable struct AcbVector <: AbstractVector{acb_struct}
|
|
||||||
ptr::Ptr{acb_struct}
|
|
||||||
length::Int
|
|
||||||
precision::Int
|
|
||||||
|
|
||||||
function AcbVector(n::Integer, precision::Integer)
|
|
||||||
v = new(
|
|
||||||
ccall((:_acb_vec_init, libarb), Ptr{acb_struct}, (Clong,), n),
|
|
||||||
n,
|
|
||||||
precision,
|
|
||||||
)
|
|
||||||
finalizer(clear!, v)
|
|
||||||
return v
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
Base.cconvert(::Type{Ptr{acb_struct}}, acb_v::AcbVector) = acb_v.ptr
|
|
||||||
Base.size(acb_v::AcbVector) = (acb_v.length,)
|
|
||||||
Base.precision(acb_v::AcbVector) = acb_v.precision
|
|
||||||
|
|
||||||
function clear!(acb_v::AcbVector)
|
|
||||||
ccall(
|
|
||||||
(:_acb_vec_clear, libarb),
|
|
||||||
Cvoid,
|
|
||||||
(Ptr{acb_struct}, Clong),
|
|
||||||
acb_v,
|
|
||||||
length(acb_v),
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
Base.@propagate_inbounds function Base.getindex(acb_v::AcbVector, i::Integer)
|
|
||||||
@boundscheck checkbounds(acb_v, i)
|
|
||||||
return unsafe_load(acb_v.ptr, i)
|
|
||||||
end
|
|
||||||
|
|
||||||
_get_ptr(acb_v::AcbVector, i::Int = 1) =
|
|
||||||
acb_v.ptr + (i - 1) * sizeof(acb_struct)
|
|
||||||
|
|
||||||
function AcbVector(v::AbstractVector{acb}, p = prec(parent(first(v))))
|
|
||||||
acb_v = AcbVector(length(v), p)
|
|
||||||
for (i, val) in zip(eachindex(acb_v), v)
|
|
||||||
ccall(
|
|
||||||
(:acb_set, libarb),
|
|
||||||
Cvoid,
|
|
||||||
(Ptr{acb_struct}, Ref{acb}),
|
|
||||||
_get_ptr(acb_v, i),
|
|
||||||
val,
|
|
||||||
)
|
|
||||||
end
|
|
||||||
return acb_v
|
|
||||||
end
|
|
||||||
|
|
||||||
function approx_eig_qr!(v::AcbVector, R::acb_mat, A::acb_mat)
|
|
||||||
ccall(
|
|
||||||
(:acb_mat_approx_eig_qr, libarb),
|
|
||||||
Cint,
|
|
||||||
(
|
|
||||||
Ptr{acb_struct},
|
|
||||||
Ptr{Cvoid},
|
|
||||||
Ref{acb_mat},
|
|
||||||
Ref{acb_mat},
|
|
||||||
Ptr{Cvoid},
|
|
||||||
Int,
|
|
||||||
Int,
|
|
||||||
),
|
|
||||||
v,
|
|
||||||
C_NULL,
|
|
||||||
R,
|
|
||||||
A,
|
|
||||||
C_NULL,
|
|
||||||
0,
|
|
||||||
prec(parent(A)),
|
|
||||||
)
|
|
||||||
return v
|
|
||||||
end
|
|
||||||
|
|
||||||
function (C::AcbField)(z::acb_struct)
|
|
||||||
res = zero(C)
|
|
||||||
ccall((:acb_set, libarb), Cvoid, (Ref{acb}, Ref{acb_struct}), res, z)
|
|
||||||
return res
|
|
||||||
end
|
|
||||||
|
|
||||||
function LinearAlgebra.eigvals(A::acb_mat)
|
|
||||||
n = nrows(A)
|
|
||||||
CC = base_ring(A)
|
|
||||||
p = prec(CC)
|
|
||||||
λ_approx = AcbVector(n, p)
|
|
||||||
R_approx = similar(A)
|
|
||||||
v = approx_eig_qr!(λ_approx, R_approx, A)
|
|
||||||
|
|
||||||
λ = AcbVector(n, p)
|
|
||||||
b = ccall(
|
|
||||||
(:acb_mat_eig_multiple, libarb),
|
|
||||||
Cint,
|
|
||||||
(Ptr{acb_struct}, Ref{acb_mat}, Ptr{acb_struct}, Ref{acb_mat}, Int),
|
|
||||||
λ,
|
|
||||||
A,
|
|
||||||
λ_approx,
|
|
||||||
R_approx,
|
|
||||||
p,
|
|
||||||
)
|
|
||||||
|
|
||||||
return CC.(λ)
|
|
||||||
end
|
|
||||||
|
|
||||||
function eigvals_rump(A::acb_mat)
|
|
||||||
n = nrows(A)
|
|
||||||
CC = base_ring(A)
|
|
||||||
p = prec(CC)
|
|
||||||
λ_approx = AcbVector(n, p)
|
|
||||||
R_approx = similar(A)
|
|
||||||
v = approx_eig_qr!(λ_approx, R_approx, A)
|
|
||||||
|
|
||||||
λ = AcbVector(n, p)
|
|
||||||
b = ccall(
|
|
||||||
(:acb_mat_eig_multiple_rump, libarb),
|
|
||||||
Cint,
|
|
||||||
(Ptr{acb_struct}, Ref{acb_mat}, Ptr{acb_struct}, Ref{acb_mat}, Int),
|
|
||||||
λ,
|
|
||||||
A,
|
|
||||||
λ_approx,
|
|
||||||
R_approx,
|
|
||||||
p,
|
|
||||||
)
|
|
||||||
|
|
||||||
return CC.(λ)
|
|
||||||
end
|
|
||||||
|
|
||||||
function _count_multiplicites(evs)
|
|
||||||
λ_m = Vector{Tuple{acb,Int}}()
|
|
||||||
sizehint!(λ_m, length(evs))
|
|
||||||
i = 1
|
|
||||||
while i <= length(evs)
|
|
||||||
m = 0
|
|
||||||
v = evs[i]
|
|
||||||
while i + m <= length(evs) && isequal(evs[i], evs[i+m])
|
|
||||||
m += 1
|
|
||||||
end
|
|
||||||
push!(λ_m, (evs[i], m))
|
|
||||||
i += m
|
|
||||||
end
|
|
||||||
return sort(
|
|
||||||
λ_m,
|
|
||||||
lt = (a, b) -> (real(first(a)) < real(first(b))),
|
|
||||||
rev = true,
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
function safe_eigvals(m::acb_mat)
|
|
||||||
# evs = eigvals_rump(m)
|
|
||||||
# all(isfinite.(evs)) && return evs
|
|
||||||
CC = base_ring(m)
|
|
||||||
X = matrix(CC, rand(CC, size(m)))
|
|
||||||
evs = eigvals_rump(X * m * inv(X))
|
|
||||||
return evs
|
|
||||||
all(isfinite.(evs)) && return evs
|
|
||||||
throw(ArgumentError("Could not compute eigenvalues"))
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user