1
0
mirror of https://github.com/kalmarek/SmallHyperbolic synced 2024-11-27 16:35:26 +01:00

Merge pull request #3 from kalmarek/enh/arblib.jl

Enh/arblib.jl
This commit is contained in:
switzel 2020-11-16 13:14:30 +01:00 committed by GitHub
commit 44ebfad5e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 234 additions and 329 deletions

View File

@ -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"

View File

@ -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"

View File

@ -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
View 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

View File

@ -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