diff --git a/Manifest.toml b/Manifest.toml index 0316459..96c54af 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -2,9 +2,21 @@ [[AbstractAlgebra]] deps = ["InteractiveUtils", "LinearAlgebra", "Markdown", "Random", "SparseArrays", "Test"] -git-tree-sha1 = "da0bf98d73f2f34c35d58981fcf139f16749a394" +git-tree-sha1 = "a203c19175c8dfa8cd61356a06bb157e973baff0" 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]] deps = ["Logging", "TextWrap"] @@ -30,6 +42,12 @@ git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7" uuid = "68821587-b530-5797-8361-c406ea357684" version = "3.5.0+3" +[[Artifacts]] +deps = ["Pkg"] +git-tree-sha1 = "c30985d8821e0cd73870b17b0ed0ce6dc44cb744" +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.3.0" + [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -58,10 +76,10 @@ uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9" version = "1.14.3+1" [[Bzip2_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "03a44490020826950c68005cafb336e5ba08b7e8" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c3598e525718abcc440f69cc6d5f60dda0a1b61e" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.6+4" +version = "1.0.6+5" [[CRlibm]] deps = ["Libdl"] @@ -88,22 +106,28 @@ uuid = "944b1d66-785c-5afd-91f1-9de20f533193" version = "0.7.0" [[CommonSubexpressions]] -deps = ["Test"] -git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0" +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" 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]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "8e695f735fca77e9708e795eda62afdb869cbb70" uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "0.3.3+0" +version = "0.3.4+0" [[DataStructures]] deps = ["InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "af6d9c86e191c917c2276fbede1137e8ea20157f" +git-tree-sha1 = "88d48e133e6d3dd68183309877eac74393daa7eb" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.17.17" +version = "0.17.20" [[Dates]] deps = ["Printf"] @@ -130,9 +154,15 @@ deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[ErrorfreeArithmetic]] -git-tree-sha1 = "a5198ab6c8a724dd3965b31ddd11ccde65300f5b" +git-tree-sha1 = "d6863c556f1142a061532e79f611aa46be201686" 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]] deps = ["ErrorfreeArithmetic", "Test"] @@ -142,49 +172,55 @@ version = "0.2.0" [[FileIO]] deps = ["Pkg"] -git-tree-sha1 = "202335fd24c2776493e198d6c66a6d910400a895" +git-tree-sha1 = "cad2e71389ecb2f4480e0de74faab04af13d7929" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.3.0" +version = "1.4.4" [[ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "869540e4367122fbffaace383a5bdc34d6e5e5ac" +git-tree-sha1 = "1d090099fb82223abc48f7ce176d3f7696ede36d" 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]] -deps = ["AbstractAlgebra", "LinearAlgebra", "Markdown", "SparseArrays"] -git-tree-sha1 = "8a9541783cff6911e35840770d0f004c0d2a13dd" +deps = ["AbstractAlgebra", "Groups", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "76e662a5473866f4f02ed4df2e83af4d531b419c" repo-rev = "master" repo-url = "https://github.com/kalmarek/GroupRings.jl" uuid = "0befed6a-bd73-11e8-1e41-a1190947c2f5" -version = "0.3.0" +version = "0.3.2" [[Groups]] deps = ["AbstractAlgebra", "LinearAlgebra", "Markdown"] -git-tree-sha1 = "2487fd5e6106dabcafb835b694df08b4d22dde0e" +git-tree-sha1 = "479214998d4769d31a8ff65d0f43152eb191850f" repo-rev = "master" repo-url = "https://github.com/kalmarek/Groups.jl" uuid = "5d8bd718-bd84-11e8-3b40-ad14f4a32557" -version = "0.3.0" +version = "0.4.2" [[HDF5]] deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"] -git-tree-sha1 = "7048678fa1970aaf867f3e99b90f3e85a9847124" +git-tree-sha1 = "0713cbabdf855852dfab3ce6447c87145f3d9ea8" uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f" -version = "0.13.2" +version = "0.13.6" [[HDF5_jll]] -deps = ["Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "3dbc683172cb53428907485a4bb98a29d3874083" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "bc9c3d43ffd4d8988bfa372b86d4bdbd26860e95" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.10.5+6" +version = "1.10.5+7" [[HTTP]] deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"] -git-tree-sha1 = "fe31f4ff144392ad8176f5c7c03cca6ba320271c" +git-tree-sha1 = "c7ec02c4c6a039a98a15f955462cd7aea5df4508" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "0.8.14" +version = "0.8.19" [[Inflate]] git-tree-sha1 = "f5fc07d4e706b84f72d54eedcc1c13d92fb0871c" @@ -202,34 +238,45 @@ deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[IntervalArithmetic]] -deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "RoundingEmulator", "SetRounding", "StaticArrays"] -git-tree-sha1 = "b502bb7fba674f4b98202c5da0b17f86d8a3f48e" +deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "SetRounding", "StaticArrays"] +git-tree-sha1 = "b2db6ee367b4eb3ee8b009ede8ca809e4fd23d35" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.17.2" +version = "0.16.7" [[JLD]] -deps = ["FileIO", "HDF5", "Printf"] -git-tree-sha1 = "f6cf928214ae7c0e7550b2424a57f11875d7e49a" +deps = ["Compat", "FileIO", "HDF5", "LegacyStrings"] +git-tree-sha1 = "c8c7a9ca4c17a519961a8ec27e508b07ffc9c1a9" 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]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e" +git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.0" +version = "0.21.1" [[JSONSchema]] -deps = ["BinaryProvider", "HTTP", "JSON"] -git-tree-sha1 = "b0a7f9328967df5213691d318a03cf70ea8c76b1" +deps = ["HTTP", "JSON", "ZipFile"] +git-tree-sha1 = "a9ecdbc90be216912a2e3e8a8e38dc4c93f0d065" uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692" -version = "0.2.0" +version = "0.3.2" [[JuMP]] -deps = ["Calculus", "DataStructures", "ForwardDiff", "LinearAlgebra", "MathOptInterface", "MutableArithmetics", "NaNMath", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "84c1cf8bec4729b8b2ef4dfc4e1db1b892ad0d30" +deps = ["Calculus", "DataStructures", "ForwardDiff", "LinearAlgebra", "MathOptInterface", "NaNMath", "Random", "SparseArrays", "Statistics"] +git-tree-sha1 = "ba7f96010ed290d77d5c941c32e5df107ca688a4" 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]] deps = ["Printf"] @@ -257,11 +304,17 @@ git-tree-sha1 = "51b1db0732bbdcfabb60e36095cc3ed9c0016932" uuid = "5ced341a-0733-55b8-9ab6-a4889d929147" 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]] deps = ["Markdown", "Random"] -git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a" +git-tree-sha1 = "6a8a2a625ab0dea913aba95c11370589e0239ff0" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.5" +version = "0.5.6" [[Markdown]] deps = ["Base64"] @@ -269,9 +322,9 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[MathOptInterface]] 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" -version = "0.9.13" +version = "0.9.18" [[MathProgBase]] deps = ["LinearAlgebra", "SparseArrays"] @@ -281,35 +334,29 @@ version = "0.7.8" [[MbedTLS]] deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] -git-tree-sha1 = "426a6978b03a97ceb7ead77775a1da066343ec6e" +git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.0.2" +version = "1.0.3" [[MbedTLS_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "c83f5a1d038f034ad0549f9ee4d5fac3fb429e33" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0eef589dd1c26a3ac9d753fe1a8bcad63f956fa6" uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.16.0+2" +version = "2.16.8+1" [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[MutableArithmetics]] deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "e1edd618a8f39d16f8595dd622a63b25f759cf8a" +git-tree-sha1 = "7631203bddc2424717fa42ecda2a5fed9ff36af0" uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "0.2.9" +version = "0.2.12" [[NaNMath]] -git-tree-sha1 = "928b8ca9b2791081dc71a51c55347c27c618760f" +git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "0.3.3" - -[[Nemo]] -deps = ["AbstractAlgebra", "BinaryProvider", "InteractiveUtils", "Libdl", "LinearAlgebra", "Markdown", "Random", "Test"] -git-tree-sha1 = "0db7e2b72bd67770d61ae2af18376a78d817816c" -uuid = "2edaba10-b0f1-5616-af89-8c11ac63239a" -version = "0.15.1" +version = "0.3.4" [[OpenBLAS_jll]] deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] @@ -318,21 +365,21 @@ uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" version = "0.3.9+5" [[OpenSpecFun_jll]] -deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] -git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9db77584158d0ab52307f8c04f8e7c08ca76b5b3" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.3+3" +version = "0.5.3+4" [[OrderedCollections]] -git-tree-sha1 = "12ce190210d278e12644bcadf5b21cbdcf225cd3" +git-tree-sha1 = "cf59cfed2e2c12e8a2ff0a4f1e9b2cd8650da6db" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.2.0" +version = "1.3.2" [[Parsers]] -deps = ["Dates", "Test"] -git-tree-sha1 = "f0abb338b4d00306500056a3fd44c221b8473ef2" +deps = ["Dates"] +git-tree-sha1 = "b417be52e8be24e916e34b3d70ec2da7bdf56a68" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "1.0.4" +version = "1.0.12" [[Pkg]] deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] @@ -349,12 +396,12 @@ deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[PropertyT]] -deps = ["AbstractAlgebra", "Dates", "GroupRings", "Groups", "IntervalArithmetic", "JLD", "JuMP", "LinearAlgebra", "Markdown", "MathProgBase", "Printf", "SparseArrays"] -git-tree-sha1 = "38850493c08470c23a8f2d86ad69fc450232c585" +deps = ["AbstractAlgebra", "Dates", "GroupRings", "Groups", "IntervalArithmetic", "JLD", "JuMP", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "599ef6d6ba280f3be5dff8d8afdc308fbbcea4df" repo-rev = "master" repo-url = "https://github.com/kalmarek/PropertyT.jl" uuid = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d" -version = "0.3.1" +version = "0.3.2" [[REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets"] @@ -362,31 +409,26 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[RamanujanGraphs]] deps = ["LightGraphs", "LinearAlgebra", "Primes"] -git-tree-sha1 = "f623b007eda4cd5857953ba6735f1d1395175bab" +git-tree-sha1 = "41fcab9bc21463a9d52bd481b7986d5271f36607" repo-rev = "master" repo-url = "https://github.com/kalmarek/RamanujanGraphs.jl" uuid = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c" -version = "0.3.0" +version = "0.4.0" [[Random]] deps = ["Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[RecipesBase]] -git-tree-sha1 = "54f8ceb165a0f6d083f0d12cb4996f5367c6edbc" +git-tree-sha1 = "b4ed4a7f988ea2340017916f7c9e5d7560b52cae" uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" -version = "1.0.1" - -[[RoundingEmulator]] -git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" -uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" -version = "0.2.1" +version = "0.8.0" [[SCS]] deps = ["BinaryProvider", "Libdl", "LinearAlgebra", "MathOptInterface", "MathProgBase", "SparseArrays"] -git-tree-sha1 = "5cb256630995eb94526065c4350ce8338947121d" +git-tree-sha1 = "936d43feaceae3290472ddf800b496be094d727b" uuid = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" -version = "0.6.3" +version = "0.6.6" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -406,9 +448,9 @@ uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" [[SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "2ee666b24ab8be6a922f9d6c11a86e1a703a7dda" +git-tree-sha1 = "daf7aec3fe3acb2131388f93a4c409b8c7f62226" uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.2" +version = "0.9.3" [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" @@ -425,9 +467,9 @@ version = "0.10.3" [[StaticArrays]] deps = ["LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "5c06c0aeb81bef54aed4b3f446847905eb6cbda0" +git-tree-sha1 = "da4cf579416c81994afd6322365d00916c79b8ae" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "0.12.3" +version = "0.12.5" [[Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -455,14 +497,20 @@ uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[Unicode]] 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]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "fdd89e5ab270ea0f2a0174bd9093e557d06d4bfa" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "320228915c8debb12cb434c59057290f0834dbf6" uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.11+16" +version = "1.2.11+18" [[Zstd_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "4de91f4313d9e88162d461e282fe3066ab3a3c09" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6f1abcb0c44f184690912aa4b0ba861dd64f11b9" uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" -version = "1.4.5+1" +version = "1.4.5+2" diff --git a/Project.toml b/Project.toml index 62b1512..67b4a79 100644 --- a/Project.toml +++ b/Project.toml @@ -1,13 +1,14 @@ [deps] AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d" +Arblib = "fb37089c-8514-4489-9461-98f9c8763369" ArgParse = "c7e460c6-2fb9-53a9-8c5b-16f535851c63" +ArnoldiMethod = "ec485272-7323-5ecc-a04f-4719b315124d" Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" GroupRings = "0befed6a-bd73-11e8-1e41-a1190947c2f5" Groups = "5d8bd718-bd84-11e8-3b40-ad14f4a32557" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" -Nemo = "2edaba10-b0f1-5616-af89-8c11ac63239a" PropertyT = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d" RamanujanGraphs = "e7bd6bc6-b6b8-11e9-1ec2-2f89442c0d6c" SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13" diff --git a/adj_psl2_eigvals.jl b/adj_psl2_eigvals.jl index 8c9eb34..6daf408 100644 --- a/adj_psl2_eigvals.jl +++ b/adj_psl2_eigvals.jl @@ -1,12 +1,12 @@ using RamanujanGraphs using LinearAlgebra -using Nemo +using Arblib using ArgParse using Logging using Dates -include("src/nemo_utils.jl") +include(joinpath(@__DIR__, "src", "eigen_utils.jl")) function SL2p_gens(p) if p == 31 diff --git a/src/eigen_utils.jl b/src/eigen_utils.jl new file mode 100644 index 0000000..9e66764 --- /dev/null +++ b/src/eigen_utils.jl @@ -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 diff --git a/src/nemo_utils.jl b/src/nemo_utils.jl deleted file mode 100644 index 944bcee..0000000 --- a/src/nemo_utils.jl +++ /dev/null @@ -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