mirror of
https://github.com/kalmarek/PropertyT.jl.git
synced 2024-12-24 18:10:29 +01:00
commit
477ce3066b
265
Manifest.toml
265
Manifest.toml
@ -2,60 +2,60 @@
|
|||||||
|
|
||||||
[[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"
|
||||||
|
|
||||||
[[Base64]]
|
[[Base64]]
|
||||||
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
|
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
|
||||||
|
|
||||||
[[BenchmarkTools]]
|
[[BenchmarkTools]]
|
||||||
deps = ["JSON", "Printf", "Statistics"]
|
deps = ["JSON", "Logging", "Printf", "Statistics", "UUIDs"]
|
||||||
git-tree-sha1 = "90b73db83791c5f83155016dd1cc1f684d4e1361"
|
git-tree-sha1 = "9e62e66db34540a0c919d72172cc2f642ac71260"
|
||||||
uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
|
uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
|
||||||
version = "0.4.3"
|
version = "0.5.0"
|
||||||
|
|
||||||
[[BinDeps]]
|
|
||||||
deps = ["Compat", "Libdl", "SHA", "URIParser"]
|
|
||||||
git-tree-sha1 = "12093ca6cdd0ee547c39b1870e0c9c3f154d9ca9"
|
|
||||||
uuid = "9e28174c-4ba2-5203-b857-d8d62c4213ee"
|
|
||||||
version = "0.8.10"
|
|
||||||
|
|
||||||
[[BinaryProvider]]
|
|
||||||
deps = ["Libdl", "SHA"]
|
|
||||||
git-tree-sha1 = "5b08ed6036d9d3f0ee6369410b830f8873d4024c"
|
|
||||||
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
|
|
||||||
version = "0.5.8"
|
|
||||||
|
|
||||||
[[Blosc]]
|
[[Blosc]]
|
||||||
deps = ["BinaryProvider", "CMakeWrapper", "Compat", "Libdl"]
|
deps = ["Blosc_jll"]
|
||||||
git-tree-sha1 = "71fb23581e1f0b0ae7be8ccf0ebfb3600e23ca41"
|
git-tree-sha1 = "84cf7d0f8fd46ca6f1b3e0305b4b4a37afe50fd6"
|
||||||
uuid = "a74b3585-a348-5f62-a45c-50e91977d574"
|
uuid = "a74b3585-a348-5f62-a45c-50e91977d574"
|
||||||
version = "0.5.1"
|
version = "0.7.0"
|
||||||
|
|
||||||
[[CMake]]
|
[[Blosc_jll]]
|
||||||
deps = ["BinDeps"]
|
deps = ["Libdl", "Lz4_jll", "Pkg", "Zlib_jll", "Zstd_jll"]
|
||||||
git-tree-sha1 = "c67a8689dc5444adc5eb2be7d837100340ecba11"
|
git-tree-sha1 = "aa9ef39b54a168c3df1b2911e7797e4feee50fbe"
|
||||||
uuid = "631607c0-34d2-5d66-819e-eb0f9aa2061a"
|
uuid = "0b7ba130-8d10-5ba8-a3d6-c5182647fed9"
|
||||||
version = "1.1.2"
|
version = "1.14.3+1"
|
||||||
|
|
||||||
[[CMakeWrapper]]
|
[[Bzip2_jll]]
|
||||||
deps = ["BinDeps", "CMake", "Libdl", "Parameters", "Test"]
|
deps = ["Libdl", "Pkg"]
|
||||||
git-tree-sha1 = "16d4acb3d37dc05b714977ffefa8890843dc8985"
|
git-tree-sha1 = "3663bfffede2ef41358b6fc2e1d8a6d50b3c3904"
|
||||||
uuid = "d5fb7624-851a-54ee-a528-d3f3bac0b4a0"
|
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
|
||||||
version = "0.2.3"
|
version = "1.0.6+2"
|
||||||
|
|
||||||
[[CRlibm]]
|
[[CRlibm]]
|
||||||
deps = ["Libdl", "Test"]
|
deps = ["Libdl"]
|
||||||
git-tree-sha1 = "805164abcd31facf3a7e5b7d803a0d16b23329bc"
|
git-tree-sha1 = "9d1c22cff9c04207f336b8e64840d0bd40d86e0e"
|
||||||
uuid = "96374032-68de-5a5b-8d9e-752f78720389"
|
uuid = "96374032-68de-5a5b-8d9e-752f78720389"
|
||||||
version = "0.7.1"
|
version = "0.8.0"
|
||||||
|
|
||||||
[[Calculus]]
|
[[Calculus]]
|
||||||
deps = ["Compat"]
|
deps = ["LinearAlgebra"]
|
||||||
git-tree-sha1 = "bd8bbd105ba583a42385bd6dc4a20dad8ab3dc11"
|
git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad"
|
||||||
uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9"
|
uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9"
|
||||||
version = "0.5.0"
|
version = "0.5.1"
|
||||||
|
|
||||||
|
[[CodecBzip2]]
|
||||||
|
deps = ["Bzip2_jll", "Libdl", "TranscodingStreams"]
|
||||||
|
git-tree-sha1 = "2e62a725210ce3c3c2e1a3080190e7ca491f18d7"
|
||||||
|
uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd"
|
||||||
|
version = "0.7.2"
|
||||||
|
|
||||||
|
[[CodecZlib]]
|
||||||
|
deps = ["TranscodingStreams", "Zlib_jll"]
|
||||||
|
git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da"
|
||||||
|
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
|
||||||
|
version = "0.7.0"
|
||||||
|
|
||||||
[[CommonSubexpressions]]
|
[[CommonSubexpressions]]
|
||||||
deps = ["Test"]
|
deps = ["Test"]
|
||||||
@ -69,11 +69,17 @@ git-tree-sha1 = "ed2c4abadf84c53d9e58510b5fc48912c2336fbb"
|
|||||||
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
|
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
|
||||||
version = "2.2.0"
|
version = "2.2.0"
|
||||||
|
|
||||||
|
[[CompilerSupportLibraries_jll]]
|
||||||
|
deps = ["Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612"
|
||||||
|
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
|
||||||
|
version = "0.3.3+0"
|
||||||
|
|
||||||
[[DataStructures]]
|
[[DataStructures]]
|
||||||
deps = ["InteractiveUtils", "OrderedCollections"]
|
deps = ["InteractiveUtils", "OrderedCollections"]
|
||||||
git-tree-sha1 = "1fe8fad5fc84686dcbc674aa255bc867a64f8132"
|
git-tree-sha1 = "be680f1ad03c0a03796aa3fda5a2180df7f83b46"
|
||||||
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
|
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
|
||||||
version = "0.17.5"
|
version = "0.17.18"
|
||||||
|
|
||||||
[[Dates]]
|
[[Dates]]
|
||||||
deps = ["Printf"]
|
deps = ["Printf"]
|
||||||
@ -84,25 +90,25 @@ deps = ["Mmap"]
|
|||||||
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
|
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
|
||||||
|
|
||||||
[[DiffResults]]
|
[[DiffResults]]
|
||||||
deps = ["Compat", "StaticArrays"]
|
deps = ["StaticArrays"]
|
||||||
git-tree-sha1 = "34a4a1e8be7bc99bc9c611b895b5baf37a80584c"
|
git-tree-sha1 = "da24935df8e0c6cf28de340b958f6aac88eaa0cc"
|
||||||
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
|
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
|
||||||
version = "0.0.4"
|
version = "1.0.2"
|
||||||
|
|
||||||
[[DiffRules]]
|
[[DiffRules]]
|
||||||
deps = ["NaNMath", "Random", "SpecialFunctions"]
|
deps = ["NaNMath", "Random", "SpecialFunctions"]
|
||||||
git-tree-sha1 = "f734b5f6bc9c909027ef99f6d91d5d9e4b111eed"
|
git-tree-sha1 = "eb0c34204c8410888844ada5359ac8b96292cfd1"
|
||||||
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
|
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
|
||||||
version = "0.1.0"
|
version = "1.0.1"
|
||||||
|
|
||||||
[[Distributed]]
|
[[Distributed]]
|
||||||
deps = ["Random", "Serialization", "Sockets"]
|
deps = ["Random", "Serialization", "Sockets"]
|
||||||
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
|
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
|
||||||
|
|
||||||
[[ErrorfreeArithmetic]]
|
[[ErrorfreeArithmetic]]
|
||||||
git-tree-sha1 = "a2b7d5a7962e5bfaab0e2e87c9cde7d3087f4e2c"
|
git-tree-sha1 = "a5198ab6c8a724dd3965b31ddd11ccde65300f5b"
|
||||||
uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a"
|
uuid = "90fa49ef-747e-5e6f-a989-263ba693cf1a"
|
||||||
version = "0.4.0"
|
version = "0.5.0"
|
||||||
|
|
||||||
[[FastRounding]]
|
[[FastRounding]]
|
||||||
deps = ["ErrorfreeArithmetic", "Test"]
|
deps = ["ErrorfreeArithmetic", "Test"]
|
||||||
@ -112,53 +118,71 @@ version = "0.2.0"
|
|||||||
|
|
||||||
[[FileIO]]
|
[[FileIO]]
|
||||||
deps = ["Pkg"]
|
deps = ["Pkg"]
|
||||||
git-tree-sha1 = "351f001a78aa1b7ad2696e386e110b5abd071c71"
|
git-tree-sha1 = "202335fd24c2776493e198d6c66a6d910400a895"
|
||||||
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
|
uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
|
||||||
version = "1.0.7"
|
version = "1.3.0"
|
||||||
|
|
||||||
[[ForwardDiff]]
|
[[ForwardDiff]]
|
||||||
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"]
|
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"]
|
||||||
git-tree-sha1 = "4407e7b76999eca2646abdb68203bd4302476168"
|
git-tree-sha1 = "869540e4367122fbffaace383a5bdc34d6e5e5ac"
|
||||||
uuid = "f6369f11-7733-5829-9624-2563aa707210"
|
uuid = "f6369f11-7733-5829-9624-2563aa707210"
|
||||||
version = "0.10.6"
|
version = "0.10.10"
|
||||||
|
|
||||||
[[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 = ["BinaryProvider", "Blosc", "CMakeWrapper", "Libdl", "Mmap"]
|
deps = ["Blosc", "HDF5_jll", "Libdl", "Mmap", "Random"]
|
||||||
git-tree-sha1 = "d3ea5532668bf9bdd5e8d5f16571e0b520cbbb9f"
|
git-tree-sha1 = "7048678fa1970aaf867f3e99b90f3e85a9847124"
|
||||||
uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
uuid = "f67ccb44-e63f-5c2f-98bd-6dc0ccc4ba2f"
|
||||||
version = "0.12.5"
|
version = "0.13.2"
|
||||||
|
|
||||||
|
[[HDF5_jll]]
|
||||||
|
deps = ["Libdl", "Pkg", "Zlib_jll"]
|
||||||
|
git-tree-sha1 = "85bd2e586a10ae0eab856125bf5245e0d36384a7"
|
||||||
|
uuid = "0234f1f7-429e-5d53-9886-15a909be8d59"
|
||||||
|
version = "1.10.5+5"
|
||||||
|
|
||||||
|
[[HTTP]]
|
||||||
|
deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"]
|
||||||
|
git-tree-sha1 = "ec87d5e2acbe1693789efbbe14f5ea7525758f71"
|
||||||
|
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
|
||||||
|
version = "0.8.15"
|
||||||
|
|
||||||
|
[[IniFile]]
|
||||||
|
deps = ["Test"]
|
||||||
|
git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8"
|
||||||
|
uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f"
|
||||||
|
version = "0.5.0"
|
||||||
|
|
||||||
[[InteractiveUtils]]
|
[[InteractiveUtils]]
|
||||||
deps = ["Markdown"]
|
deps = ["Markdown"]
|
||||||
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
|
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
|
||||||
|
|
||||||
[[IntervalArithmetic]]
|
[[IntervalArithmetic]]
|
||||||
deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "RecipesBase", "SetRounding", "StaticArrays"]
|
deps = ["CRlibm", "FastRounding", "LinearAlgebra", "Markdown", "Random", "RecipesBase", "SetRounding", "StaticArrays"]
|
||||||
git-tree-sha1 = "f97d8d63c3f849b0f545062de4634bc9f100d8ec"
|
git-tree-sha1 = "b2db6ee367b4eb3ee8b009ede8ca809e4fd23d35"
|
||||||
uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
|
uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
|
||||||
version = "0.16.1"
|
version = "0.16.7"
|
||||||
|
|
||||||
[[JLD]]
|
[[JLD]]
|
||||||
deps = ["Compat", "FileIO", "HDF5", "LegacyStrings", "Profile", "Random"]
|
deps = ["Compat", "FileIO", "HDF5", "LegacyStrings"]
|
||||||
git-tree-sha1 = "95fd5d7f129918a75d0535aaaf5b8e235e6e0b0b"
|
git-tree-sha1 = "c8c7a9ca4c17a519961a8ec27e508b07ffc9c1a9"
|
||||||
uuid = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
|
uuid = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
|
||||||
version = "0.9.1"
|
version = "0.9.2"
|
||||||
|
|
||||||
[[JSON]]
|
[[JSON]]
|
||||||
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
|
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
|
||||||
@ -166,6 +190,12 @@ git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e"
|
|||||||
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
|
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
|
||||||
version = "0.21.0"
|
version = "0.21.0"
|
||||||
|
|
||||||
|
[[JSONSchema]]
|
||||||
|
deps = ["HTTP", "JSON", "ZipFile"]
|
||||||
|
git-tree-sha1 = "832a4d327d9dafdae55a6ecae04f9997c83615cc"
|
||||||
|
uuid = "7d188eb4-7ad8-530c-ae41-71a32a6d4692"
|
||||||
|
version = "0.3.0"
|
||||||
|
|
||||||
[[JuMP]]
|
[[JuMP]]
|
||||||
deps = ["Calculus", "DataStructures", "ForwardDiff", "LinearAlgebra", "MathOptInterface", "NaNMath", "Random", "SparseArrays", "Statistics"]
|
deps = ["Calculus", "DataStructures", "ForwardDiff", "LinearAlgebra", "MathOptInterface", "NaNMath", "Random", "SparseArrays", "Statistics"]
|
||||||
git-tree-sha1 = "ba7f96010ed290d77d5c941c32e5df107ca688a4"
|
git-tree-sha1 = "ba7f96010ed290d77d5c941c32e5df107ca688a4"
|
||||||
@ -179,6 +209,7 @@ uuid = "1b4a561d-cfcb-5daf-8433-43fcf8b4bea3"
|
|||||||
version = "0.4.1"
|
version = "0.4.1"
|
||||||
|
|
||||||
[[LibGit2]]
|
[[LibGit2]]
|
||||||
|
deps = ["Printf"]
|
||||||
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
|
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
|
||||||
|
|
||||||
[[Libdl]]
|
[[Libdl]]
|
||||||
@ -191,61 +222,73 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
|
|||||||
[[Logging]]
|
[[Logging]]
|
||||||
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
|
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
|
||||||
|
|
||||||
|
[[Lz4_jll]]
|
||||||
|
deps = ["Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "e1a93171a400d4578193eaa39edd2d3f5db08fb6"
|
||||||
|
uuid = "5ced341a-0733-55b8-9ab6-a4889d929147"
|
||||||
|
version = "1.9.2+0"
|
||||||
|
|
||||||
[[Markdown]]
|
[[Markdown]]
|
||||||
deps = ["Base64"]
|
deps = ["Base64"]
|
||||||
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
|
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
|
||||||
|
|
||||||
[[MathOptInterface]]
|
[[MathOptInterface]]
|
||||||
deps = ["BenchmarkTools", "LinearAlgebra", "OrderedCollections", "SparseArrays", "Test", "Unicode"]
|
deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "JSON", "JSONSchema", "LinearAlgebra", "MutableArithmetics", "OrderedCollections", "SparseArrays", "Test", "Unicode"]
|
||||||
git-tree-sha1 = "78427dcc212e0c0ad9658049bc56a50303ad9737"
|
git-tree-sha1 = "cd2049c055c7d192a235670d50faa375361624ba"
|
||||||
uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
|
uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
|
||||||
version = "0.9.7"
|
version = "0.9.14"
|
||||||
|
|
||||||
[[MathProgBase]]
|
[[MbedTLS]]
|
||||||
deps = ["Compat"]
|
deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"]
|
||||||
git-tree-sha1 = "3bf2e534e635df810e5f4b4f1a8b6de9004a0d53"
|
git-tree-sha1 = "426a6978b03a97ceb7ead77775a1da066343ec6e"
|
||||||
uuid = "fdba3010-5040-5b88-9595-932c9decdf73"
|
uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
|
||||||
version = "0.7.7"
|
version = "1.0.2"
|
||||||
|
|
||||||
|
[[MbedTLS_jll]]
|
||||||
|
deps = ["Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "c83f5a1d038f034ad0549f9ee4d5fac3fb429e33"
|
||||||
|
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
|
||||||
|
version = "2.16.0+2"
|
||||||
|
|
||||||
[[Mmap]]
|
[[Mmap]]
|
||||||
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
|
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
|
||||||
|
|
||||||
|
[[MutableArithmetics]]
|
||||||
|
deps = ["LinearAlgebra", "SparseArrays", "Test"]
|
||||||
|
git-tree-sha1 = "6cf09794783b9de2e662c4e8b60d743021e338d0"
|
||||||
|
uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0"
|
||||||
|
version = "0.2.10"
|
||||||
|
|
||||||
[[NaNMath]]
|
[[NaNMath]]
|
||||||
deps = ["Compat"]
|
git-tree-sha1 = "928b8ca9b2791081dc71a51c55347c27c618760f"
|
||||||
git-tree-sha1 = "ce3b85e484a5d4c71dd5316215069311135fa9f2"
|
|
||||||
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
|
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
|
||||||
version = "0.3.2"
|
version = "0.3.3"
|
||||||
|
|
||||||
|
[[OpenSpecFun_jll]]
|
||||||
|
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87"
|
||||||
|
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
|
||||||
|
version = "0.5.3+3"
|
||||||
|
|
||||||
[[OrderedCollections]]
|
[[OrderedCollections]]
|
||||||
deps = ["Random", "Serialization", "Test"]
|
git-tree-sha1 = "12ce190210d278e12644bcadf5b21cbdcf225cd3"
|
||||||
git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
|
|
||||||
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
|
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
|
||||||
version = "1.1.0"
|
version = "1.2.0"
|
||||||
|
|
||||||
[[Parameters]]
|
|
||||||
deps = ["OrderedCollections"]
|
|
||||||
git-tree-sha1 = "b62b2558efb1eef1fa44e4be5ff58a515c287e38"
|
|
||||||
uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
|
|
||||||
version = "0.12.0"
|
|
||||||
|
|
||||||
[[Parsers]]
|
[[Parsers]]
|
||||||
deps = ["Dates", "Test"]
|
deps = ["Dates", "Test"]
|
||||||
git-tree-sha1 = "a23968e107c0544aca91bfab6f7dd34de1206a54"
|
git-tree-sha1 = "eb3e09940c0d7ae01b01d9291ebad7b081c844d3"
|
||||||
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
|
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
|
||||||
version = "0.3.9"
|
version = "1.0.5"
|
||||||
|
|
||||||
[[Pkg]]
|
[[Pkg]]
|
||||||
deps = ["Dates", "LibGit2", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
|
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
|
||||||
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
|
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
|
||||||
|
|
||||||
[[Printf]]
|
[[Printf]]
|
||||||
deps = ["Unicode"]
|
deps = ["Unicode"]
|
||||||
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
|
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
|
||||||
|
|
||||||
[[Profile]]
|
|
||||||
deps = ["Printf"]
|
|
||||||
uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79"
|
|
||||||
|
|
||||||
[[REPL]]
|
[[REPL]]
|
||||||
deps = ["InteractiveUtils", "Markdown", "Sockets"]
|
deps = ["InteractiveUtils", "Markdown", "Sockets"]
|
||||||
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
|
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
|
||||||
@ -255,9 +298,9 @@ deps = ["Serialization"]
|
|||||||
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
|
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
|
||||||
|
|
||||||
[[RecipesBase]]
|
[[RecipesBase]]
|
||||||
git-tree-sha1 = "7bdce29bc9b2f5660a6e5e64d64d91ec941f6aa2"
|
git-tree-sha1 = "b4ed4a7f988ea2340017916f7c9e5d7560b52cae"
|
||||||
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
|
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
|
||||||
version = "0.7.0"
|
version = "0.8.0"
|
||||||
|
|
||||||
[[SHA]]
|
[[SHA]]
|
||||||
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
|
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
|
||||||
@ -283,16 +326,16 @@ deps = ["LinearAlgebra", "Random"]
|
|||||||
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
|
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
|
||||||
|
|
||||||
[[SpecialFunctions]]
|
[[SpecialFunctions]]
|
||||||
deps = ["BinDeps", "BinaryProvider", "Libdl"]
|
deps = ["OpenSpecFun_jll"]
|
||||||
git-tree-sha1 = "3bdd374b6fd78faf0119b8c5d538788dbf910c6e"
|
git-tree-sha1 = "d8d8b8a9f4119829410ecd706da4cc8594a1e020"
|
||||||
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
|
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
|
||||||
version = "0.8.0"
|
version = "0.10.3"
|
||||||
|
|
||||||
[[StaticArrays]]
|
[[StaticArrays]]
|
||||||
deps = ["LinearAlgebra", "Random", "Statistics"]
|
deps = ["LinearAlgebra", "Random", "Statistics"]
|
||||||
git-tree-sha1 = "5a3bcb6233adabde68ebc97be66e95dcb787424c"
|
git-tree-sha1 = "5c06c0aeb81bef54aed4b3f446847905eb6cbda0"
|
||||||
uuid = "90137ffa-7385-5640-81b9-e52037218182"
|
uuid = "90137ffa-7385-5640-81b9-e52037218182"
|
||||||
version = "0.12.1"
|
version = "0.12.3"
|
||||||
|
|
||||||
[[Statistics]]
|
[[Statistics]]
|
||||||
deps = ["LinearAlgebra", "SparseArrays"]
|
deps = ["LinearAlgebra", "SparseArrays"]
|
||||||
@ -302,11 +345,11 @@ uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
|
|||||||
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
|
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
|
||||||
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
|
||||||
|
|
||||||
[[URIParser]]
|
[[TranscodingStreams]]
|
||||||
deps = ["Test", "Unicode"]
|
deps = ["Random", "Test"]
|
||||||
git-tree-sha1 = "6ddf8244220dfda2f17539fa8c9de20d6c575b69"
|
git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c"
|
||||||
uuid = "30578b45-9adc-5946-b283-645ec420af67"
|
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
|
||||||
version = "0.4.0"
|
version = "0.9.5"
|
||||||
|
|
||||||
[[UUIDs]]
|
[[UUIDs]]
|
||||||
deps = ["Random", "SHA"]
|
deps = ["Random", "SHA"]
|
||||||
@ -314,3 +357,21 @@ 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 = "254975fef2fc526583bb9b7c9420fe66ffe09f2f"
|
||||||
|
uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea"
|
||||||
|
version = "0.9.2"
|
||||||
|
|
||||||
|
[[Zlib_jll]]
|
||||||
|
deps = ["Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "4838361eb3ba796a57457bdc183e1a128639d0ec"
|
||||||
|
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
|
||||||
|
version = "1.2.11+12"
|
||||||
|
|
||||||
|
[[Zstd_jll]]
|
||||||
|
deps = ["Libdl", "Pkg"]
|
||||||
|
git-tree-sha1 = "b25b0fb10176c42e9a5a20e1f40d570ac0288d4e"
|
||||||
|
uuid = "3161d3a3-bdf6-5164-811a-617609db77b4"
|
||||||
|
version = "1.4.5+0"
|
||||||
|
16
Project.toml
16
Project.toml
@ -1,7 +1,7 @@
|
|||||||
name = "PropertyT"
|
name = "PropertyT"
|
||||||
uuid = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d"
|
uuid = "03b72c93-0167-51e2-8a1e-eb4ff1fb940d"
|
||||||
authors = ["Marek Kaluba <kalmar@amu.edu.pl>"]
|
authors = ["Marek Kaluba <kalmar@amu.edu.pl>"]
|
||||||
version = "0.3.1"
|
version = "0.3.2"
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
|
AbstractAlgebra = "c3fe647b-3220-5bb0-a1ea-a7954cac585d"
|
||||||
@ -12,16 +12,16 @@ IntervalArithmetic = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253"
|
|||||||
JLD = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
|
JLD = "4138dd39-2aa7-5051-a626-17a0bb65d9c8"
|
||||||
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
|
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
|
||||||
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
|
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
|
||||||
Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a"
|
|
||||||
MathProgBase = "fdba3010-5040-5b88-9595-932c9decdf73"
|
|
||||||
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
|
|
||||||
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
|
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
|
||||||
|
|
||||||
[compat]
|
[compat]
|
||||||
AbstractAlgebra = "^0.7.0"
|
AbstractAlgebra = "^0.9.0"
|
||||||
GroupRings = "^0.3.0"
|
GroupRings = "^0.3.2"
|
||||||
Groups = "^0.3.0"
|
Groups = "^0.4.2"
|
||||||
julia = "≥ 1.1.0"
|
IntervalArithmetic = "^0.16.0"
|
||||||
|
JLD = "^0.9.0"
|
||||||
|
JuMP = "^0.20.0"
|
||||||
|
julia = "^1.3.0, ^1.4.0"
|
||||||
|
|
||||||
[extras]
|
[extras]
|
||||||
SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
|
SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
|
||||||
|
8
REQUIRE
8
REQUIRE
@ -1,8 +0,0 @@
|
|||||||
julia
|
|
||||||
AbstractAlgebra
|
|
||||||
Groups
|
|
||||||
GroupRings
|
|
||||||
IntervalArithmetic
|
|
||||||
JuMP
|
|
||||||
JLD
|
|
||||||
SCS
|
|
@ -1,10 +1,5 @@
|
|||||||
using Printf
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
|
||||||
# Settings and filenames
|
# Settings and filenames
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
abstract type Settings end
|
abstract type Settings end
|
||||||
|
|
||||||
@ -73,10 +68,7 @@ function filename(path::String, name, extension; prefix=nothing, suffix=nothing)
|
|||||||
end
|
end
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
|
||||||
# Approximation by SOS (logged & warmstarted)
|
# Approximation by SOS (logged & warmstarted)
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
function warmstart(sett::Settings)
|
function warmstart(sett::Settings)
|
||||||
warmstart_fname = filename(sett, :warmstart)
|
warmstart_fname = filename(sett, :warmstart)
|
||||||
@ -112,11 +104,16 @@ function approximate_by_SOS(sett::Naive,
|
|||||||
if any(isnan, P)
|
if any(isnan, P)
|
||||||
@warn "The solution seems to contain NaNs. Not overriding warmstart.jld"
|
@warn "The solution seems to contain NaNs. Not overriding warmstart.jld"
|
||||||
else
|
else
|
||||||
save(filename(sett, :warmstart), "warmstart", (ws.primal, ws.dual, ws.slack), "P", P, "λ", λ)
|
save(filename(sett, :warmstart),
|
||||||
|
"warmstart", (ws.primal, ws.dual, ws.slack),
|
||||||
|
"P", P,
|
||||||
|
"λ", λ)
|
||||||
end
|
end
|
||||||
|
|
||||||
save(filename(sett, :warmstart, suffix=Dates.now()),
|
save(filename(sett, :warmstart, suffix=Dates.now()),
|
||||||
"warmstart", (ws.primal, ws.dual, ws.slack), "P", P, "λ", λ)
|
"warmstart", (ws.primal, ws.dual, ws.slack),
|
||||||
|
"P", P,
|
||||||
|
"λ", λ)
|
||||||
|
|
||||||
return λ, P
|
return λ, P
|
||||||
end
|
end
|
||||||
@ -133,7 +130,8 @@ function approximate_by_SOS(sett::Symmetrized,
|
|||||||
orbit_data
|
orbit_data
|
||||||
catch ex
|
catch ex
|
||||||
@warn ex.msg
|
@warn ex.msg
|
||||||
isdefined(parent(orderunit), :basis) || throw("You need to define basis of Group Ring to compute orbit decomposition!")
|
GroupRings.hasbasis(parent(orderunit)) ||
|
||||||
|
throw("You need to define basis of Group Ring to compute orbit decomposition!")
|
||||||
@info "Computing orbit and Wedderburn decomposition..."
|
@info "Computing orbit and Wedderburn decomposition..."
|
||||||
orbit_data = OrbitData(parent(orderunit), sett.autS)
|
orbit_data = OrbitData(parent(orderunit), sett.autS)
|
||||||
save(filename(sett, :OrbitData), "OrbitData", orbit_data)
|
save(filename(sett, :OrbitData), "OrbitData", orbit_data)
|
||||||
@ -158,11 +156,16 @@ function approximate_by_SOS(sett::Symmetrized,
|
|||||||
if any(any(isnan, P) for P in Ps)
|
if any(any(isnan, P) for P in Ps)
|
||||||
@warn "The solution seems to contain NaNs. Not overriding warmstart.jld"
|
@warn "The solution seems to contain NaNs. Not overriding warmstart.jld"
|
||||||
else
|
else
|
||||||
save(filename(sett, :warmstart), "warmstart", (ws.primal, ws.dual, ws.slack), "Ps", Ps, "λ", λ)
|
save(filename(sett, :warmstart),
|
||||||
|
"warmstart", (ws.primal, ws.dual, ws.slack),
|
||||||
|
"Ps", Ps,
|
||||||
|
"λ", λ)
|
||||||
end
|
end
|
||||||
|
|
||||||
save(filename(sett, :warmstart, suffix=Dates.now()),
|
save(filename(sett, :warmstart, suffix=Dates.now()),
|
||||||
"warmstart", (ws.primal, ws.dual, ws.slack), "Ps", Ps, "λ", λ)
|
"warmstart", (ws.primal, ws.dual, ws.slack),
|
||||||
|
"Ps", Ps,
|
||||||
|
"λ", λ)
|
||||||
|
|
||||||
@info "Reconstructing P..."
|
@info "Reconstructing P..."
|
||||||
@time P = reconstruct(Ps, orbit_data)
|
@time P = reconstruct(Ps, orbit_data)
|
||||||
@ -171,10 +174,7 @@ function approximate_by_SOS(sett::Symmetrized,
|
|||||||
end
|
end
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
|
||||||
# Checking solution
|
# Checking solution
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
function certify_SOS_decomposition(elt::GroupRingElem, orderunit::GroupRingElem,
|
function certify_SOS_decomposition(elt::GroupRingElem, orderunit::GroupRingElem,
|
||||||
λ::Number, Q::AbstractMatrix; R::Int=2)
|
λ::Number, Q::AbstractMatrix; R::Int=2)
|
||||||
@ -231,10 +231,7 @@ function spectral_gap(Δ::GroupRingElem, λ::Number, Q::AbstractMatrix; R::Int=2
|
|||||||
end
|
end
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
|
||||||
# Interpreting the numerical results
|
# Interpreting the numerical results
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
Kazhdan_constant(λ::Number, N::Integer) = sqrt(2*λ/N)
|
Kazhdan_constant(λ::Number, N::Integer) = sqrt(2*λ/N)
|
||||||
Kazhdan_constant(λ::Interval, N::Integer) = IntervalArithmetic.inf(sqrt(2*λ/N))
|
Kazhdan_constant(λ::Interval, N::Integer) = IntervalArithmetic.inf(sqrt(2*λ/N))
|
||||||
|
@ -2,8 +2,8 @@ indexing(n) = [(i,j) for i in 1:n for j in 1:n if i≠j]
|
|||||||
|
|
||||||
function generating_set(G::AutGroup{N}, n=N) where N
|
function generating_set(G::AutGroup{N}, n=N) where N
|
||||||
|
|
||||||
rmuls = [Groups.rmul_autsymbol(i,j) for (i,j) in indexing(n)]
|
rmuls = [Groups.transvection_R(i,j) for (i,j) in indexing(n)]
|
||||||
lmuls = [Groups.lmul_autsymbol(i,j) for (i,j) in indexing(n)]
|
lmuls = [Groups.transvection_L(i,j) for (i,j) in indexing(n)]
|
||||||
gen_set = G.([rmuls; lmuls])
|
gen_set = G.([rmuls; lmuls])
|
||||||
|
|
||||||
return [gen_set; inv.(gen_set)]
|
return [gen_set; inv.(gen_set)]
|
||||||
|
@ -4,7 +4,6 @@ module PropertyT
|
|||||||
using AbstractAlgebra
|
using AbstractAlgebra
|
||||||
using LinearAlgebra
|
using LinearAlgebra
|
||||||
using SparseArrays
|
using SparseArrays
|
||||||
using Markdown
|
|
||||||
using Dates
|
using Dates
|
||||||
|
|
||||||
using Groups
|
using Groups
|
||||||
@ -15,8 +14,6 @@ using JuMP
|
|||||||
|
|
||||||
import AbstractAlgebra: Group, NCRing
|
import AbstractAlgebra: Group, NCRing
|
||||||
|
|
||||||
import MathProgBase.SolverInterface.AbstractMathProgSolver
|
|
||||||
|
|
||||||
include("laplacians.jl")
|
include("laplacians.jl")
|
||||||
include("RGprojections.jl")
|
include("RGprojections.jl")
|
||||||
include("orbitdata.jl")
|
include("orbitdata.jl")
|
||||||
|
@ -3,7 +3,6 @@ module Projections
|
|||||||
using AbstractAlgebra
|
using AbstractAlgebra
|
||||||
using Groups
|
using Groups
|
||||||
using GroupRings
|
using GroupRings
|
||||||
using Markdown
|
|
||||||
|
|
||||||
export PermCharacter, DirectProdCharacter, rankOne_projections
|
export PermCharacter, DirectProdCharacter, rankOne_projections
|
||||||
|
|
||||||
@ -55,7 +54,7 @@ for T in [PermCharacter, DirectProdCharacter]
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
characters(G::Generic.PermGroup) = (PermCharacter(p) for p in AllParts(G.n))
|
characters(G::Generic.SymmetricGroup) = (PermCharacter(p) for p in AllParts(G.n))
|
||||||
|
|
||||||
function characters(G::DirectPowerGroup{N}) where N
|
function characters(G::DirectPowerGroup{N}) where N
|
||||||
nfold_chars = Iterators.repeated(characters(G.group), N)
|
nfold_chars = Iterators.repeated(characters(G.group), N)
|
||||||
@ -80,7 +79,7 @@ function central_projection(RG::GroupRing, chi::AbstractCharacter, T::Type=Ratio
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
function alternating_emb(RG::GroupRing{Gr,T}, V::Vector{T}, S::Type=Rational{Int}) where {Gr<:Generic.PermGroup, T<:GroupElem}
|
function alternating_emb(RG::GroupRing{Gr,T}, V::Vector{T}, S::Type=Rational{Int}) where {Gr<:AbstractAlgebra.AbstractPermutationGroup, T<:GroupElem}
|
||||||
res = RG(S)
|
res = RG(S)
|
||||||
for g in V
|
for g in V
|
||||||
res[g] += sign(g)
|
res[g] += sign(g)
|
||||||
@ -88,7 +87,7 @@ function alternating_emb(RG::GroupRing{Gr,T}, V::Vector{T}, S::Type=Rational{Int
|
|||||||
return res
|
return res
|
||||||
end
|
end
|
||||||
|
|
||||||
function idempotents(RG::GroupRing{Generic.PermGroup{S}}, T::Type=Rational{Int}) where S<:Integer
|
function idempotents(RG::GroupRing{Generic.SymmetricGroup{S}}, T::Type=Rational{Int}) where S<:Integer
|
||||||
if RG.group.n == 1
|
if RG.group.n == 1
|
||||||
return GroupRingElem{T}[one(RG,T)]
|
return GroupRingElem{T}[one(RG,T)]
|
||||||
elseif RG.group.n == 2
|
elseif RG.group.n == 2
|
||||||
@ -142,7 +141,7 @@ function rankOne_projection(chi::PermCharacter, idems::Vector{T}) where {T<:Grou
|
|||||||
throw("Couldn't find rank-one projection for $chi")
|
throw("Couldn't find rank-one projection for $chi")
|
||||||
end
|
end
|
||||||
|
|
||||||
function rankOne_projections(RG::GroupRing{G}, T::Type=Rational{Int}) where G<:Generic.PermGroup
|
function rankOne_projections(RG::GroupRing{<:Generic.SymmetricGroup}, T::Type=Rational{Int})
|
||||||
if RG.group.n == 1
|
if RG.group.n == 1
|
||||||
return [GroupRingElem([one(T)], RG)]
|
return [GroupRingElem([one(T)], RG)]
|
||||||
end
|
end
|
||||||
@ -170,7 +169,7 @@ function rankOne_projections(RBn::GroupRing{G}, T::Type=Rational{Int}) where {G<
|
|||||||
N = Bn.P.n
|
N = Bn.P.n
|
||||||
# projections as elements of the group rings RSₙ
|
# projections as elements of the group rings RSₙ
|
||||||
Sn_rankOnePr = [rankOne_projections(
|
Sn_rankOnePr = [rankOne_projections(
|
||||||
GroupRing(PermGroup(i), collect(PermGroup(i))))
|
GroupRing(SymmetricGroup(i), collect(SymmetricGroup(i))))
|
||||||
for i in typeof(N)(1):N]
|
for i in typeof(N)(1):N]
|
||||||
|
|
||||||
# embedding into group ring of BN
|
# embedding into group ring of BN
|
||||||
@ -208,15 +207,16 @@ end
|
|||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
@doc doc"""
|
"""
|
||||||
products(X::Vector{GroupElem}, Y::Vector{GroupElem}, op=*)
|
products(X::Vector{GroupElem}, Y::Vector{GroupElem}[, op=*])
|
||||||
> Returns a vector of all possible products (or `op(x,y)`), where $x\in X$ and
|
Return a vector of all possible products (or `op(x,y)`), where `x ∈ X` and
|
||||||
> $y\in Y$ are group elements. You may specify which operation is used when
|
`y ∈ Y`. You may change which operation is used by specifying `op` argument.
|
||||||
> forming 'products' by adding `op` (which is `*` by default).
|
|
||||||
"""
|
"""
|
||||||
function products(X::AbstractVector{T}, Y::AbstractVector{T}, op=*) where {T<:GroupElem}
|
function products(X::AbstractVector{T}, Y::AbstractVector{T}, op=*) where {T<:GroupElem}
|
||||||
result = Vector{T}()
|
result = Vector{T}()
|
||||||
seen = Set{T}()
|
seen = Set{T}()
|
||||||
|
sizehint!(result, length(X)*length(Y))
|
||||||
|
sizehint!(seen, length(X)*length(Y))
|
||||||
for x in X
|
for x in X
|
||||||
for y in Y
|
for y in Y
|
||||||
z = op(x,y)
|
z = op(x,y)
|
||||||
@ -229,25 +229,21 @@ function products(X::AbstractVector{T}, Y::AbstractVector{T}, op=*) where {T<:Gr
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
@doc doc"""
|
|
||||||
generateGroup(gens::Vector{GroupElem}, r=2, Id=parent(first(gens))(), op=*)
|
|
||||||
> Produces all elements of a group generated by elements in `gens` in ball of
|
|
||||||
> radius `r` (word-length metric induced by `gens`).
|
|
||||||
> If `r(=2)` is specified the procedure will terminate after generating ball
|
|
||||||
> of radius `r` in the word-length metric induced by `gens`.
|
|
||||||
> The identity element `Id` and binary operation function `op` can be supplied
|
|
||||||
> to e.g. take advantage of additive group structure.
|
|
||||||
"""
|
"""
|
||||||
function generateGroup(gens::Vector{T}, r=2, Id::T=one(parent(first(gens))), op=*) where {T<:GroupElem}
|
generateGroup(gens::Vector{GroupElem}, r, [op=*])
|
||||||
|
Produce all elements of a group generated by elements in `gens` in ball of
|
||||||
|
radius `r` (word-length metric induced by `gens`). The binary operation can
|
||||||
|
be optionally specified.
|
||||||
|
"""
|
||||||
|
function generateGroup(gens::Vector{T}, r, op=*) where {T<:GroupElem}
|
||||||
n = 0
|
n = 0
|
||||||
R = 1
|
R = 1
|
||||||
elts = gens
|
elts = [one(first(gens)); gens]
|
||||||
gens = [Id; gens]
|
|
||||||
while n ≠ length(elts) && R < r
|
while n ≠ length(elts) && R < r
|
||||||
# @show elts
|
# @show elts
|
||||||
R += 1
|
R += 1
|
||||||
n = length(elts)
|
n = length(elts)
|
||||||
elts = products(elts, gens, op)
|
elts = products(gens, elts, op)
|
||||||
end
|
end
|
||||||
return elts
|
return elts
|
||||||
end
|
end
|
||||||
|
@ -149,7 +149,7 @@ function perm_reps(G::Group, E::Vector, E_rdict=GroupRings.reverse_dict(E))
|
|||||||
l = length(elts)
|
l = length(elts)
|
||||||
preps = Vector{Generic.Perm}(undef, l)
|
preps = Vector{Generic.Perm}(undef, l)
|
||||||
|
|
||||||
permG = PermutationGroup(length(E))
|
permG = SymmetricGroup(length(E))
|
||||||
|
|
||||||
Threads.@threads for i in 1:l
|
Threads.@threads for i in 1:l
|
||||||
preps[i] = permG(PropertyT.perm_repr(elts[i], E, E_rdict), false)
|
preps[i] = permG(PropertyT.perm_repr(elts[i], E, E_rdict), false)
|
||||||
@ -186,25 +186,19 @@ function (g::GroupRingElem)(y::GroupRingElem)
|
|||||||
return res
|
return res
|
||||||
end
|
end
|
||||||
|
|
||||||
###############################################################################
|
function (g::GroupElem)(y::GroupRingElem)
|
||||||
#
|
|
||||||
# perm actions
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
function (g::Generic.Perm)(y::GroupRingElem)
|
|
||||||
RG = parent(y)
|
RG = parent(y)
|
||||||
result = zero(RG, eltype(y.coeffs))
|
result = zero(RG, eltype(y.coeffs))
|
||||||
|
|
||||||
for (idx, c) in enumerate(y.coeffs)
|
for (idx, c) in enumerate(y.coeffs)
|
||||||
if c!= zero(eltype(y.coeffs))
|
if !iszero(c)
|
||||||
result[g(RG.basis[idx])] = c
|
result[g(RG.basis[idx])] = c
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
function (g::Generic.Perm)(y::GroupRingElem{T, <:SparseVector}) where T
|
function (g::GroupElem)(y::GroupRingElem{T, <:SparseVector}) where T
|
||||||
RG = parent(y)
|
RG = parent(y)
|
||||||
index = [RG.basis_dict[g(RG.basis[idx])] for idx in y.coeffs.nzind]
|
index = [RG.basis_dict[g(RG.basis[idx])] for idx in y.coeffs.nzind]
|
||||||
|
|
||||||
@ -213,6 +207,12 @@ function (g::Generic.Perm)(y::GroupRingElem{T, <:SparseVector}) where T
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
#
|
||||||
|
# perm && WreathProductElems actions: MatAlgElem
|
||||||
|
#
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
function (p::Generic.Perm)(A::MatAlgElem)
|
function (p::Generic.Perm)(A::MatAlgElem)
|
||||||
length(p.d) == size(A, 1) == size(A,2) || throw("Can't act via $p on matrix of size $(size(A))")
|
length(p.d) == size(A, 1) == size(A,2) || throw("Can't act via $p on matrix of size $(size(A))")
|
||||||
result = similar(A)
|
result = similar(A)
|
||||||
@ -224,24 +224,6 @@ function (p::Generic.Perm)(A::MatAlgElem)
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
#
|
|
||||||
# WreathProductElems action on MatAlgElem
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
function (g::WreathProductElem)(y::GroupRingElem)
|
|
||||||
RG = parent(y)
|
|
||||||
result = zero(RG, eltype(y.coeffs))
|
|
||||||
|
|
||||||
for (idx, c) in enumerate(y.coeffs)
|
|
||||||
if c!= zero(eltype(y.coeffs))
|
|
||||||
result[g(RG.basis[idx])] = c
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return result
|
|
||||||
end
|
|
||||||
|
|
||||||
function (g::WreathProductElem{N})(A::MatAlgElem) where N
|
function (g::WreathProductElem{N})(A::MatAlgElem) where N
|
||||||
# @assert N == size(A,1) == size(A,2)
|
# @assert N == size(A,1) == size(A,2)
|
||||||
flips = ntuple(i->(g.n[i].d[1]==1 && g.n[i].d[2]==2 ? 1 : -1), N)
|
flips = ntuple(i->(g.n[i].d[1]==1 && g.n[i].d[2]==2 ? 1 : -1), N)
|
||||||
@ -257,8 +239,6 @@ function (g::WreathProductElem{N})(A::MatAlgElem) where N
|
|||||||
else
|
else
|
||||||
result[g.p[i], g.p[j]] = -x
|
result[g.p[i], g.p[j]] = -x
|
||||||
end
|
end
|
||||||
# result[i, j] = AbstractAlgebra.mul!(x, x, flips[i]*flips[j])
|
|
||||||
# this mul! needs to be separately defined, but is 2x faster
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return result
|
return result
|
||||||
@ -266,33 +246,33 @@ end
|
|||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
# Action of WreathProductElems on AutGroupElem
|
# perm && WreathProductElems actions: Automorphism
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
function AutFG_emb(A::AutGroup, g::WreathProductElem)
|
function (g::GroupElem)(a::Automorphism)
|
||||||
|
Ag = parent(a)(g)
|
||||||
|
Ag_inv = inv(Ag)
|
||||||
|
res = append!(Ag, a, Ag_inv)
|
||||||
|
return Groups.freereduce!(res)
|
||||||
|
end
|
||||||
|
|
||||||
|
(A::AutGroup)(p::Generic.Perm) = A(Groups.AutSymbol(p))
|
||||||
|
|
||||||
|
function (A::AutGroup)(g::WreathProductElem)
|
||||||
isa(A.objectGroup, FreeGroup) || throw("Not an Aut(Fₙ)")
|
isa(A.objectGroup, FreeGroup) || throw("Not an Aut(Fₙ)")
|
||||||
parent(g).P.n == length(A.objectGroup.gens) || throw("No natural embedding of $(parent(g)) into $A")
|
parent(g).P.n == length(A.objectGroup.gens) || throw("No natural embedding of $(parent(g)) into $A")
|
||||||
elt = one(A)
|
elt = one(A)
|
||||||
Id = one(parent(g.n.elts[1]))
|
Id = one(parent(g.n.elts[1]))
|
||||||
flips = Groups.AutSymbol[Groups.flip_autsymbol(i) for i in 1:length(g.p.d) if g.n.elts[i] != Id]
|
for i in 1:length(g.p.d)
|
||||||
Groups.r_multiply!(elt, flips, reduced=false)
|
if g.n.elts[i] != Id
|
||||||
Groups.r_multiply!(elt, [Groups.perm_autsymbol(g.p)])
|
push!(elt, Groups.flip(i))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
push!(elt, Groups.AutSymbol(g.p))
|
||||||
return elt
|
return elt
|
||||||
end
|
end
|
||||||
|
|
||||||
function (g::WreathProductElem)(a::Groups.Automorphism)
|
|
||||||
A = parent(a)
|
|
||||||
g_emb = AutFG_emb(A,g)
|
|
||||||
res = deepcopy(g_emb)
|
|
||||||
res = Groups.r_multiply!(res, a.symbols, reduced=false)
|
|
||||||
res = Groups.r_multiply!(res, [inv(s) for s in reverse!(g_emb.symbols)])
|
|
||||||
return res
|
|
||||||
end
|
|
||||||
|
|
||||||
function (p::Generic.Perm)(a::Groups.Automorphism)
|
# fallback:
|
||||||
res = parent(a)(Groups.perm_autsymbol(p))
|
Base.one(p::Generic.Perm) = Perm(length(p.d))
|
||||||
res = Groups.r_multiply!(res, a.symbols, reduced=false)
|
|
||||||
res = Groups.r_multiply!(res, [Groups.perm_autsymbol(inv(p))])
|
|
||||||
return res
|
|
||||||
end
|
|
||||||
|
@ -49,7 +49,9 @@ function SOS_problem(X::GroupRingElem, orderunit::GroupRingElem; upper_bound::Fl
|
|||||||
JuMP.@variable(m, P[1:N, 1:N])
|
JuMP.@variable(m, P[1:N, 1:N])
|
||||||
# SP = Symmetric(P)
|
# SP = Symmetric(P)
|
||||||
JuMP.@constraint(m, sdp, P in PSDCone())
|
JuMP.@constraint(m, sdp, P in PSDCone())
|
||||||
JuMP.@constraint(m, sum(P[i] for i in eachindex(P)) == 0)
|
if iszero(aug(X)) && iszero(aug(orderunit))
|
||||||
|
JuMP.@constraint(m, sum(P) == 0)
|
||||||
|
end
|
||||||
|
|
||||||
if upper_bound < Inf
|
if upper_bound < Inf
|
||||||
λ = JuMP.@variable(m, λ <= upper_bound)
|
λ = JuMP.@variable(m, λ <= upper_bound)
|
||||||
|
@ -4,7 +4,7 @@ isopposite(σ::Generic.Perm, τ::Generic.Perm, i=1, j=2) =
|
|||||||
|
|
||||||
isadjacent(σ::Generic.Perm, τ::Generic.Perm, i=1, j=2) =
|
isadjacent(σ::Generic.Perm, τ::Generic.Perm, i=1, j=2) =
|
||||||
(σ[i] == τ[i] && σ[j] ≠ τ[j]) || # first equal, second differ
|
(σ[i] == τ[i] && σ[j] ≠ τ[j]) || # first equal, second differ
|
||||||
(σ[j] == τ[j] && σ[i] ≠ τ[i]) || # sedond equal, first differ
|
(σ[j] == τ[j] && σ[i] ≠ τ[i]) || # second equal, first differ
|
||||||
(σ[i] == τ[j] && σ[j] ≠ τ[i]) || # first σ equal to second τ
|
(σ[i] == τ[j] && σ[j] ≠ τ[i]) || # first σ equal to second τ
|
||||||
(σ[j] == τ[i] && σ[i] ≠ τ[j]) # second σ equal to first τ
|
(σ[j] == τ[i] && σ[i] ≠ τ[j]) # second σ equal to first τ
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ function Sq(RG::GroupRing, N::Integer)
|
|||||||
ℤ = Int64
|
ℤ = Int64
|
||||||
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
||||||
|
|
||||||
Alt_N = [g for g in PermutationGroup(N) if parity(g) == 0]
|
Alt_N = [g for g in SymmetricGroup(N) if parity(g) == 0]
|
||||||
|
|
||||||
sq = RG()
|
sq = RG()
|
||||||
for σ in Alt_N
|
for σ in Alt_N
|
||||||
@ -29,7 +29,7 @@ function Adj(RG::GroupRing, N::Integer)
|
|||||||
ℤ = Int64
|
ℤ = Int64
|
||||||
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
||||||
|
|
||||||
Alt_N = [g for g in PermutationGroup(N) if parity(g) == 0]
|
Alt_N = [g for g in SymmetricGroup(N) if parity(g) == 0]
|
||||||
Δ₂s = Dict(σ=>σ(Δ₂) for σ in Alt_N)
|
Δ₂s = Dict(σ=>σ(Δ₂) for σ in Alt_N)
|
||||||
adj = RG()
|
adj = RG()
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ function Op(RG::GroupRing, N::Integer)
|
|||||||
ℤ = Int64
|
ℤ = Int64
|
||||||
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
||||||
|
|
||||||
Alt_N = [g for g in PermutationGroup(N) if parity(g) == 0]
|
Alt_N = [g for g in SymmetricGroup(N) if parity(g) == 0]
|
||||||
Δ₂s = Dict(σ=>σ(Δ₂) for σ in Alt_N)
|
Δ₂s = Dict(σ=>σ(Δ₂) for σ in Alt_N)
|
||||||
op = RG()
|
op = RG()
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ function SqAdjOp(RG::GroupRing, N::Integer)
|
|||||||
ℤ = Int64
|
ℤ = Int64
|
||||||
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
Δ₂ = length(S₂)*one(RG, ℤ) - RG(S₂, ℤ);
|
||||||
|
|
||||||
Alt_N = [σ for σ in PermutationGroup(N) if parity(σ) == 0]
|
Alt_N = [σ for σ in SymmetricGroup(N) if parity(σ) == 0]
|
||||||
sq, adj, op = RG(), RG(), RG()
|
sq, adj, op = RG(), RG(), RG()
|
||||||
|
|
||||||
Δ₂s = Dict(σ=>σ(Δ₂) for σ in Alt_N)
|
Δ₂s = Dict(σ=>σ(Δ₂) for σ in Alt_N)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
N = 3
|
N = 3
|
||||||
G = MatrixAlgebra(zz, N)
|
G = MatrixAlgebra(zz, N)
|
||||||
S = PropertyT.generating_set(G)
|
S = PropertyT.generating_set(G)
|
||||||
autS = WreathProduct(PermGroup(2), PermGroup(N))
|
autS = WreathProduct(SymmetricGroup(2), SymmetricGroup(N))
|
||||||
|
|
||||||
NAME = "SL($N,Z)_orbit"
|
NAME = "SL($N,Z)_orbit"
|
||||||
|
|
||||||
@ -36,9 +36,9 @@
|
|||||||
@test PropertyT.check_property_T(sett) == true
|
@test PropertyT.check_property_T(sett) == true
|
||||||
|
|
||||||
##########
|
##########
|
||||||
# Symmetrizing by PermGroup(3):
|
# Symmetrizing by SymmetricGroup(3):
|
||||||
|
|
||||||
sett = PropertyT.Settings(NAME, G, S, PermGroup(N), with_SCS(4000, accel=20, warm_start=false);
|
sett = PropertyT.Settings(NAME, G, S, SymmetricGroup(N), with_SCS(4000, accel=20, warm_start=false);
|
||||||
upper_bound=0.27, force_compute=true)
|
upper_bound=0.27, force_compute=true)
|
||||||
|
|
||||||
@info sett
|
@info sett
|
||||||
@ -52,7 +52,7 @@
|
|||||||
N = 4
|
N = 4
|
||||||
G = MatrixAlgebra(zz, N)
|
G = MatrixAlgebra(zz, N)
|
||||||
S = PropertyT.generating_set(G)
|
S = PropertyT.generating_set(G)
|
||||||
autS = WreathProduct(PermGroup(2), PermGroup(N))
|
autS = WreathProduct(SymmetricGroup(2), SymmetricGroup(N))
|
||||||
|
|
||||||
NAME = "SL($N,Z)_orbit"
|
NAME = "SL($N,Z)_orbit"
|
||||||
|
|
||||||
@ -88,7 +88,7 @@
|
|||||||
N = 3
|
N = 3
|
||||||
G = SAut(FreeGroup(N))
|
G = SAut(FreeGroup(N))
|
||||||
S = PropertyT.generating_set(G)
|
S = PropertyT.generating_set(G)
|
||||||
autS = WreathProduct(PermGroup(2), PermGroup(N))
|
autS = WreathProduct(SymmetricGroup(2), SymmetricGroup(N))
|
||||||
|
|
||||||
NAME = "SAut(F$N)_orbit"
|
NAME = "SAut(F$N)_orbit"
|
||||||
|
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
Δ = PropertyT.Laplacian(S, 2)
|
Δ = PropertyT.Laplacian(S, 2)
|
||||||
RG = parent(Δ)
|
RG = parent(Δ)
|
||||||
|
|
||||||
autS = WreathProduct(PermGroup(2), PermGroup(N))
|
autS = WreathProduct(SymmetricGroup(2), SymmetricGroup(N))
|
||||||
orbits = PropertyT.orbit_decomposition(autS, RG.basis)
|
orbits = PropertyT.orbit_decomposition(autS, RG.basis)
|
||||||
|
|
||||||
@test PropertyT.Sq(RG) isa GroupRingElem
|
@test PropertyT.Sq(RG) isa GroupRingElem
|
||||||
@ -123,7 +123,7 @@ end
|
|||||||
S = PropertyT.generating_set(M)
|
S = PropertyT.generating_set(M)
|
||||||
Δ = PropertyT.Laplacian(S, halfradius)
|
Δ = PropertyT.Laplacian(S, halfradius)
|
||||||
RG = parent(Δ)
|
RG = parent(Δ)
|
||||||
orbit_data = PropertyT.OrbitData(RG, WreathProduct(PermGroup(2), PermGroup(N)))
|
orbit_data = PropertyT.OrbitData(RG, WreathProduct(SymmetricGroup(2), SymmetricGroup(N)))
|
||||||
orbit_data = PropertyT.decimate(orbit_data);
|
orbit_data = PropertyT.decimate(orbit_data);
|
||||||
|
|
||||||
@testset "Sq₃ is SOS" begin
|
@testset "Sq₃ is SOS" begin
|
||||||
@ -170,7 +170,7 @@ end
|
|||||||
S = PropertyT.generating_set(M)
|
S = PropertyT.generating_set(M)
|
||||||
Δ = PropertyT.Laplacian(S, halfradius)
|
Δ = PropertyT.Laplacian(S, halfradius)
|
||||||
RG = parent(Δ)
|
RG = parent(Δ)
|
||||||
orbit_data = PropertyT.OrbitData(RG, WreathProduct(PermGroup(2), PermGroup(N)))
|
orbit_data = PropertyT.OrbitData(RG, WreathProduct(SymmetricGroup(2), SymmetricGroup(N)))
|
||||||
orbit_data = PropertyT.decimate(orbit_data);
|
orbit_data = PropertyT.decimate(orbit_data);
|
||||||
|
|
||||||
@testset "Sq₄ is SOS" begin
|
@testset "Sq₄ is SOS" begin
|
||||||
@ -228,7 +228,7 @@ end
|
|||||||
# S = PropertyT.generating_set(M)
|
# S = PropertyT.generating_set(M)
|
||||||
# Δ = PropertyT.Laplacian(S, halfradius)
|
# Δ = PropertyT.Laplacian(S, halfradius)
|
||||||
# RG = parent(Δ)
|
# RG = parent(Δ)
|
||||||
# orbit_data = PropertyT.OrbitData(RG, WreathProduct(PermGroup(2), PermGroup(N)))
|
# orbit_data = PropertyT.OrbitData(RG, WreathProduct(SymmetricGroup(2), SymmetricGroup(N)))
|
||||||
# orbit_data = PropertyT.decimate(orbit_data);
|
# orbit_data = PropertyT.decimate(orbit_data);
|
||||||
#
|
#
|
||||||
# @time elt = PropertyT.Adj(RG) + 100PropertyT.Op(RG)
|
# @time elt = PropertyT.Adj(RG) + 100PropertyT.Op(RG)
|
||||||
|
@ -3,12 +3,9 @@
|
|||||||
ssgs(M::MatAlgebra, i, j) = (S = [Eij(M, i, j), Eij(M, j, i)];
|
ssgs(M::MatAlgebra, i, j) = (S = [Eij(M, i, j), Eij(M, j, i)];
|
||||||
S = unique([S; inv.(S)]); S)
|
S = unique([S; inv.(S)]); S)
|
||||||
|
|
||||||
rmul = Groups.rmul_autsymbol
|
|
||||||
lmul = Groups.lmul_autsymbol
|
|
||||||
|
|
||||||
function ssgs(A::AutGroup, i, j)
|
function ssgs(A::AutGroup, i, j)
|
||||||
rmuls = [rmul(i,j), rmul(j,i)]
|
rmuls = [Groups.transvection_R(i,j), Groups.transvection_R(j,i)]
|
||||||
lmuls = [lmul(i,j), lmul(j,i)]
|
lmuls = [Groups.transvection_L(i,j), Groups.transvection_L(j,i)]
|
||||||
gen_set = A.([rmuls; lmuls])
|
gen_set = A.([rmuls; lmuls])
|
||||||
return unique([gen_set; inv.(gen_set)])
|
return unique([gen_set; inv.(gen_set)])
|
||||||
end
|
end
|
||||||
@ -33,7 +30,7 @@
|
|||||||
elt2 = E_R[rand(sizes[1]:sizes[2])]
|
elt2 = E_R[rand(sizes[1]:sizes[2])]
|
||||||
y = 2RG(elt2) - RG(elt)
|
y = 2RG(elt2) - RG(elt)
|
||||||
|
|
||||||
for G in [PermGroup(N), WreathProduct(PermGroup(2), PermGroup(N))]
|
for G in [SymmetricGroup(N), WreathProduct(SymmetricGroup(2), SymmetricGroup(N))]
|
||||||
@test all(g(one(M)) == one(M) for g in G)
|
@test all(g(one(M)) == one(M) for g in G)
|
||||||
@test all(rdict[g(m)] <= sizes[1] for g in G for m in S)
|
@test all(rdict[g(m)] <= sizes[1] for g in G for m in S)
|
||||||
@test all(g(m)*g(n) == g(m*n) for g in G for m in S for n in S)
|
@test all(g(m)*g(n) == g(m*n) for g in G for m in S for n in S)
|
||||||
@ -50,9 +47,9 @@
|
|||||||
Sij = ssgs(M, i,j)
|
Sij = ssgs(M, i,j)
|
||||||
Δij= PropertyT.spLaplacian(RG, Sij)
|
Δij= PropertyT.spLaplacian(RG, Sij)
|
||||||
|
|
||||||
@test all(p(Δij) == PropertyT.spLaplacian(RG, ssgs(M, p[i], p[j])) for p in PermGroup(N))
|
@test all(p(Δij) == PropertyT.spLaplacian(RG, ssgs(M, p[i], p[j])) for p in SymmetricGroup(N))
|
||||||
|
|
||||||
@test all(g(Δij) == PropertyT.spLaplacian(RG, ssgs(M, g.p[i], g.p[j])) for g in WreathProduct(PermGroup(2), PermGroup(N)))
|
@test all(g(Δij) == PropertyT.spLaplacian(RG, ssgs(M, g.p[i], g.p[j])) for g in WreathProduct(SymmetricGroup(2), SymmetricGroup(N)))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -79,7 +76,7 @@ end
|
|||||||
elt2 = E_R[rand(sizes[1]:sizes[2])]
|
elt2 = E_R[rand(sizes[1]:sizes[2])]
|
||||||
y = 2RG(elt2) - RG(elt)
|
y = 2RG(elt2) - RG(elt)
|
||||||
|
|
||||||
for G in [PermGroup(N), WreathProduct(PermGroup(2), PermGroup(N))]
|
for G in [SymmetricGroup(N), WreathProduct(SymmetricGroup(2), SymmetricGroup(N))]
|
||||||
@test all(g(one(M)) == one(M) for g in G)
|
@test all(g(one(M)) == one(M) for g in G)
|
||||||
@test all(rdict[g(m)] <= sizes[1] for g in G for m in S)
|
@test all(rdict[g(m)] <= sizes[1] for g in G for m in S)
|
||||||
@test all(g(m)*g(n) == g(m*n) for g in G for m in S for n in S)
|
@test all(g(m)*g(n) == g(m*n) for g in G for m in S for n in S)
|
||||||
@ -95,9 +92,9 @@ end
|
|||||||
Sij = ssgs(M, i,j)
|
Sij = ssgs(M, i,j)
|
||||||
Δij= PropertyT.spLaplacian(RG, Sij)
|
Δij= PropertyT.spLaplacian(RG, Sij)
|
||||||
|
|
||||||
@test all(p(Δij) == PropertyT.spLaplacian(RG, ssgs(M, p[i], p[j])) for p in PermGroup(N))
|
@test all(p(Δij) == PropertyT.spLaplacian(RG, ssgs(M, p[i], p[j])) for p in SymmetricGroup(N))
|
||||||
|
|
||||||
@test all(g(Δij) == PropertyT.spLaplacian(RG, ssgs(M, g.p[i], g.p[j])) for g in WreathProduct(PermGroup(2), PermGroup(N)))
|
@test all(g(Δij) == PropertyT.spLaplacian(RG, ssgs(M, g.p[i], g.p[j])) for g in WreathProduct(SymmetricGroup(2), SymmetricGroup(N)))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user