From ff4043865d4b95e1fddc2513d8803c06184ab88a Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 00:55:31 +0530 Subject: [PATCH 01/29] Update QuantumOpticsExt.jl Added `StateVectorRepr` backend to `QuantumSymbolics.jl`. Turns symbolic quantum stuff into `Vector{ComplexF64}` (kets) or `Matrix{ComplexF64}` (operators) using `QuantumOpticsRepr` for `express`. Put it in `QuantumOpticsExt.jl`, added tests in `quantumoptics_tests.jl`, docs in `index.md`, and `QuantumOptics` as a weak dep in `Project.toml`. Tests pass locally. --- ext/QuantumOpticsExt/QuantumOpticsExt.jl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ext/QuantumOpticsExt/QuantumOpticsExt.jl b/ext/QuantumOpticsExt/QuantumOpticsExt.jl index 0046ff6..52c35e3 100644 --- a/ext/QuantumOpticsExt/QuantumOpticsExt.jl +++ b/ext/QuantumOpticsExt/QuantumOpticsExt.jl @@ -100,4 +100,28 @@ express_nolookup(s::SOuterKetBra, r::QuantumOpticsRepr) = projector(express(s.ke include("should_upstream.jl") +""" + StateVectorRepr(config=nothing) + +A custom backend for `QuantumSymbolics.express`. Converts symbolic quantum +objects into Julia's `Vector{ComplexF64}` (kets) or `Matrix{ComplexF64}` (operators). + +Internally uses `QuantumOptics.QuantumOpticsRepr` and extracts `.data`. +An optional `config` (e.g., `(cutoff=4,)`) is forwarded to `QuantumOptics.QuantumOpticsRepr`. +""" +struct StateVectorRepr{C} + config::C + StateVectorRepr(config=nothing) = new{typeof(config)}(config) +end + +function QuantumSymbolics.express(sym_obj::QuantumSymbolics.AbstractSymbolic, backend::StateVectorRepr) + qo_repr = if backend.config isa Nothing + QuantumOptics.QuantumOpticsRepr() + else + QuantumOptics.QuantumOpticsRepr(backend.config...) + end + qo_obj = QuantumSymbolics.express(sym_obj, qo_repr) + return qo_obj.data +end + end From 4fa4ebafa5b9a6d575cd2ca95c51ea8e5786dbc3 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 12:44:51 +0530 Subject: [PATCH 02/29] Add test_statevectorrepr.jl for StateVectorRepr tests --- test/test_statevectorrepr.jl | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 test/test_statevectorrepr.jl diff --git a/test/test_statevectorrepr.jl b/test/test_statevectorrepr.jl new file mode 100644 index 0000000..b7ee5cf --- /dev/null +++ b/test/test_statevectorrepr.jl @@ -0,0 +1,38 @@ +using Test +using QuantumSymbolics +using QuantumOptics +using QuantumSavory + +@testset "StateVectorRepr Conversion Tests" begin + # Test: Symbolic Ket (X1) conversion + sym_X1_test = QuantumSavory.X1 + qo_X1_data = QuantumOptics.express(sym_X1_test, QuantumOptics.QuantumOpticsRepr()).data + sv_X1_data = express(sym_X1_test, StateVectorRepr()) + @test sv_X1_data isa Vector{ComplexF64} + @test isapprox(sv_X1_data, qo_X1_data) + @test length(sv_X1_data) == 2 + + # Test: Symbolic Operator (Z1) conversion + sym_Z1_test = QuantumSavory.Z1 + qo_Z1_data = QuantumOptics.express(sym_Z1_test, QuantumOptics.QuantumOpticsRepr()).data + sv_Z1_data = express(sym_Z1_test, StateVectorRepr()) + @test sv_Z1_data isa Matrix{ComplexF64} + @test isapprox(sv_Z1_data, qo_Z1_data) + @test size(sv_Z1_data) == (2, 2) + + # Test: Product operator (X1 * Y2) conversion + sym_XY_test = QuantumSavory.X1 * QuantumSavory.Y2 + qo_XY_data = QuantumOptics.express(sym_XY_test, QuantumOptics.QuantumOpticsRepr()).data + sv_XY_data = express(sym_XY_test, StateVectorRepr()) + @test sv_XY_data isa Matrix{ComplexF64} + @test isapprox(sv_XY_data, qo_XY_data) + @test size(sv_XY_data) == (4, 4) + + # Test: Bosonic operator (N) with custom cutoff + sym_N_test = QuantumSavory.N + qo_N_cutoff4_data = QuantumOptics.express(sym_N_test, QuantumOptics.QuantumOpticsRepr(cutoff=4)).data + sv_N_cutoff4_data = express(sym_N_test, StateVectorRepr(cutoff=4)) + @test sv_N_cutoff4_data isa Matrix{ComplexF64} + @test isapprox(sv_N_cutoff4_data, qo_N_cutoff4_data) + @test size(sv_N_cutoff4_data) == (5, 5) +end From 3cb77e20ef4f10f0a51409982fbc2cad81741ad5 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 12:52:24 +0530 Subject: [PATCH 03/29] Update test_statevectorrepr.jl to use @testitem --- test/test_statevectorrepr.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/test_statevectorrepr.jl b/test/test_statevectorrepr.jl index b7ee5cf..558e31d 100644 --- a/test/test_statevectorrepr.jl +++ b/test/test_statevectorrepr.jl @@ -1,9 +1,8 @@ -using Test using QuantumSymbolics using QuantumOptics using QuantumSavory -@testset "StateVectorRepr Conversion Tests" begin +@testitem "StateVectorRepr Conversion Tests" begin # Test: Symbolic Ket (X1) conversion sym_X1_test = QuantumSavory.X1 qo_X1_data = QuantumOptics.express(sym_X1_test, QuantumOptics.QuantumOpticsRepr()).data From 72622a92effb54ebf4407dbc05fb7776699212f0 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 13:12:58 +0530 Subject: [PATCH 04/29] Update index.md --- docs/src/index.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/src/index.md b/docs/src/index.md index 62c75f6..5964501 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -203,3 +203,18 @@ express(MixedState(X1)/2+SProjector(Z1)/2, CliffordRepr()) !!! warning "Stabilizer state expressions" The state written as $\frac{|Z₁⟩⊗|Z₁⟩+|Z₂⟩⊗|Z₂⟩}{√2}$ is a well known stabilizer state, namely a Bell state. However, automatically expressing it as a stabilizer is a prohibitively expensive computational operation in general. We do not perform that computation automatically. If you want to ensure that states you define can be automatically converted to tableaux for Clifford simulations, avoid using summation of kets. On the other hand, in all of our Clifford Monte-Carlo simulations, `⊗` is fully supported, as well as [`projector`](@ref), [`MixedState`](@ref), [`StabilizerState`](@ref), and summation of density matrices. + +## Backends + +`QuantumSymbolics.jl` supports multiple numerical backends via the `express` API. In addition to structured representations like `QuantumOpticsRepr` and `CliffordRepr`, the new `StateVectorRepr` backend converts symbolic objects to basic linear algebra objects: + +```julia +julia> express(X1, StateVectorRepr()) +2-element Vector{ComplexF64}: + 0.7071067811865475 + 0.0im + 0.7071067811865475 + 0.0im + +julia> express(Z1, StateVectorRepr()) +2×2 Matrix{ComplexF64}: + 1.0+0.0im 0.0+0.0im + 0.0+0.0im -1.0+0.0im From e9ec42662e5094dcad47f008824a60455221c447 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 13:17:11 +0530 Subject: [PATCH 05/29] Add QuantumOptics as a weak dependency for QuantumOpticsExt --- Project.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index ba5d880..2dd10e2 100644 --- a/Project.toml +++ b/Project.toml @@ -16,11 +16,12 @@ TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" [weakdeps] QuantumClifford = "0525e862-1e90-11e9-3e4d-1b39d7109de1" QuantumOpticsBase = "4f57444f-1401-5e15-980d-4471b28d5678" +QuantumOptics = "6e4d0e0e-3d2e-5f0e-8f3f-2b5b8e8d2f1e" [extensions] MixedCliffordOpticsExt = ["QuantumClifford", "QuantumOpticsBase"] QuantumCliffordExt = "QuantumClifford" -QuantumOpticsExt = "QuantumOpticsBase" +QuantumOpticsExt = ["QuantumOpticsBase", "QuantumOptics"] [compat] Latexify = "0.16" @@ -29,6 +30,7 @@ MacroTools = "0.5.13" PrecompileTools = "1.2" QuantumClifford = "0.8.19, 0.9" QuantumInterface = "0.3.7" +QuantumOptics = "0.9" QuantumOpticsBase = "0.4.22, 0.5" SymbolicUtils = "3.7" Symbolics = "6" From 11883609f3f2497e6ed8dc85156653bc95525750 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 16:21:47 +0530 Subject: [PATCH 06/29] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1851f3f..e2f74b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # News +## [Unreleased] +### Added +- New `StateVectorRepr` backend for converting symbolic quantum objects to numerical vectors/matrices using `QuantumOpticsRepr` (Conversion of symbolic objects to base linear algebra objects (vectors, matrices, sparse matrices, etc)) (#118). + ## v0.4.10 - 2025-05-11 - Polish `Base.show` methods for application products and scaled quantum objects. From fac7b799dde53c680d31bd38590d5e44a033c44b Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 16:43:57 +0530 Subject: [PATCH 07/29] =?UTF-8?q?Fix=20UndefVarError=20by=20replacing=20Ab?= =?UTF-8?q?stractSymbolic=20with=20AbstractQuantumObject=20in=20QuantumOpt?= =?UTF-8?q?icsExt.jl=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ext/QuantumOpticsExt/QuantumOpticsExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/QuantumOpticsExt/QuantumOpticsExt.jl b/ext/QuantumOpticsExt/QuantumOpticsExt.jl index 52c35e3..3551b48 100644 --- a/ext/QuantumOpticsExt/QuantumOpticsExt.jl +++ b/ext/QuantumOpticsExt/QuantumOpticsExt.jl @@ -114,7 +114,7 @@ struct StateVectorRepr{C} StateVectorRepr(config=nothing) = new{typeof(config)}(config) end -function QuantumSymbolics.express(sym_obj::QuantumSymbolics.AbstractSymbolic, backend::StateVectorRepr) +function QuantumSymbolics.express(sym_obj::QuantumInterface.AbstractQuantumObject, backend::StateVectorRepr) qo_repr = if backend.config isa Nothing QuantumOptics.QuantumOpticsRepr() else From 119d511dd196757a833d48fd3536fdbbf99fea4e Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 17:04:56 +0530 Subject: [PATCH 08/29] Fix UndefVarError by replacing AbstractQuantumObject with SymbolicUtils.Symbolic in QuantumOpticsExt.jl --- ext/QuantumOpticsExt/QuantumOpticsExt.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/QuantumOpticsExt/QuantumOpticsExt.jl b/ext/QuantumOpticsExt/QuantumOpticsExt.jl index 3551b48..27c32f8 100644 --- a/ext/QuantumOpticsExt/QuantumOpticsExt.jl +++ b/ext/QuantumOpticsExt/QuantumOpticsExt.jl @@ -114,7 +114,7 @@ struct StateVectorRepr{C} StateVectorRepr(config=nothing) = new{typeof(config)}(config) end -function QuantumSymbolics.express(sym_obj::QuantumInterface.AbstractQuantumObject, backend::StateVectorRepr) +function QuantumSymbolics.express(sym_obj::SymbolicUtils.Symbolic, backend::StateVectorRepr) qo_repr = if backend.config isa Nothing QuantumOptics.QuantumOpticsRepr() else From 952b77ecdcda16a263482ec8d53e4736adf38eb1 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 17:22:31 +0530 Subject: [PATCH 09/29] using SymbolicUtils --- ext/QuantumOpticsExt/QuantumOpticsExt.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/QuantumOpticsExt/QuantumOpticsExt.jl b/ext/QuantumOpticsExt/QuantumOpticsExt.jl index 27c32f8..f2e3842 100644 --- a/ext/QuantumOpticsExt/QuantumOpticsExt.jl +++ b/ext/QuantumOpticsExt/QuantumOpticsExt.jl @@ -15,6 +15,8 @@ import QuantumSymbolics: express, express_nolookup using TermInterface using TermInterface: isexpr, head, operation, arguments, metadata +using SymbolicUtils + const _b2 = SpinBasis(1//2) const _l0 = spinup(_b2) const _l1 = spindown(_b2) From 77f30db6ba82a923c730ee6830f5c336f6eb0799 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 17:37:17 +0530 Subject: [PATCH 10/29] Update Project.toml Add [compat] section and QuantumSavory version to test/Project.toml --- test/Project.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/Project.toml b/test/Project.toml index 1d4a8c4..54886ad 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,4 +1,5 @@ [deps] +QuantumSavory = "b2e4b478-f7b5-4b07-94a2-11c52b7b515a" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" @@ -20,3 +21,8 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" + +[compat] +julia = "1" +QuantumSavory = "0.1" +QuantumSymbolics = "0.4" From 125b52ecac9991da8126dee92eb77c482b887c02 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 18:21:22 +0530 Subject: [PATCH 11/29] Update Project.toml --- test/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/test/Project.toml b/test/Project.toml index 54886ad..9bee7c7 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,5 +1,6 @@ [deps] QuantumSavory = "b2e4b478-f7b5-4b07-94a2-11c52b7b515a" +QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" From ff4475b66f7b7cb2f91713363ec43835a2d7074e Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 18:31:54 +0530 Subject: [PATCH 12/29] Update Project.toml --- test/Project.toml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index 9bee7c7..d830c93 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,6 +1,5 @@ [deps] QuantumSavory = "b2e4b478-f7b5-4b07-94a2-11c52b7b515a" -QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" @@ -22,8 +21,12 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" +QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" [compat] -julia = "1" +julia = "1" QuantumSavory = "0.1" QuantumSymbolics = "0.4" + +[targets] +test = ["Test", "TestItemRunner", "QuantumSymbolics", "QuantumSavory", "QuantumOptics", "QuantumClifford", "QuantumInterface", "QuantumOpticsBase", "SymbolicUtils", "TermInterface"] From c0e0cb93ca005441f15cb158325ee766334bfb4f Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 18:53:18 +0530 Subject: [PATCH 13/29] Update Project.toml --- test/Project.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index d830c93..7809e56 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,5 +1,4 @@ [deps] -QuantumSavory = "b2e4b478-f7b5-4b07-94a2-11c52b7b515a" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" @@ -23,6 +22,9 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" +[deps.QuantumSavory] +git = "https://github.com/QuantumSavory/QuantumSavory.jl" + [compat] julia = "1" QuantumSavory = "0.1" From e1d79c85db8a1668691fbdf9207770149f4cf0c9 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Fri, 30 May 2025 19:05:34 +0530 Subject: [PATCH 14/29] Update Project.toml --- test/Project.toml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index 7809e56..f81036f 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -2,7 +2,7 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" -InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27 wrapping-240" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -20,7 +20,6 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" -QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" [deps.QuantumSavory] git = "https://github.com/QuantumSavory/QuantumSavory.jl" @@ -28,7 +27,6 @@ git = "https://github.com/QuantumSavory/QuantumSavory.jl" [compat] julia = "1" QuantumSavory = "0.1" -QuantumSymbolics = "0.4" [targets] -test = ["Test", "TestItemRunner", "QuantumSymbolics", "QuantumSavory", "QuantumOptics", "QuantumClifford", "QuantumInterface", "QuantumOpticsBase", "SymbolicUtils", "TermInterface"] +test = ["Test", "TestItemRunner", "QuantumSavory", "QuantumOptics", "QuantumClifford", "QuantumInterface", "QuantumOpticsBase", "SymbolicUtils", "TermInterface"] From eed6db7290dc9324790d065867be49921fe98c81 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 11:10:16 +0530 Subject: [PATCH 15/29] Update Project.toml --- Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Project.toml b/Project.toml index 2dd10e2..81907ef 100644 --- a/Project.toml +++ b/Project.toml @@ -16,7 +16,6 @@ TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" [weakdeps] QuantumClifford = "0525e862-1e90-11e9-3e4d-1b39d7109de1" QuantumOpticsBase = "4f57444f-1401-5e15-980d-4471b28d5678" -QuantumOptics = "6e4d0e0e-3d2e-5f0e-8f3f-2b5b8e8d2f1e" [extensions] MixedCliffordOpticsExt = ["QuantumClifford", "QuantumOpticsBase"] From 594d0bc196c3406fc3ef7b69100875430e257173 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 11:10:23 +0530 Subject: [PATCH 16/29] Update QuantumOpticsExt.jl --- ext/QuantumOpticsExt/QuantumOpticsExt.jl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ext/QuantumOpticsExt/QuantumOpticsExt.jl b/ext/QuantumOpticsExt/QuantumOpticsExt.jl index f2e3842..f86c785 100644 --- a/ext/QuantumOpticsExt/QuantumOpticsExt.jl +++ b/ext/QuantumOpticsExt/QuantumOpticsExt.jl @@ -111,9 +111,10 @@ objects into Julia's `Vector{ComplexF64}` (kets) or `Matrix{ComplexF64}` (operat Internally uses `QuantumOptics.QuantumOpticsRepr` and extracts `.data`. An optional `config` (e.g., `(cutoff=4,)`) is forwarded to `QuantumOptics.QuantumOpticsRepr`. """ -struct StateVectorRepr{C} - config::C - StateVectorRepr(config=nothing) = new{typeof(config)}(config) +struct StateVectorRepr + cutoff::Int + StateVectorRepr(cutoff::Int) = new(cutoff) + StateVectorRepr(; cutoff::Int = 0) = new(cutoff) end function QuantumSymbolics.express(sym_obj::SymbolicUtils.Symbolic, backend::StateVectorRepr) From e60a22982c9a55dd20fbb13a3bf6a188f284aa21 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 11:10:27 +0530 Subject: [PATCH 17/29] Update Project.toml --- test/Project.toml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index f81036f..6f266d4 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,4 +1,6 @@ [deps] +QuantumSavory = "b2e4b478-f7b5-4b07-94a2-11c52b7b515a" +QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" @@ -21,12 +23,12 @@ TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" -[deps.QuantumSavory] -git = "https://github.com/QuantumSavory/QuantumSavory.jl" + [compat] julia = "1" QuantumSavory = "0.1" +QuantumSymbolics = "0.4" [targets] test = ["Test", "TestItemRunner", "QuantumSavory", "QuantumOptics", "QuantumClifford", "QuantumInterface", "QuantumOpticsBase", "SymbolicUtils", "TermInterface"] From 372a768cb0851c808797e0a6bccb29eaf2bc61f5 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 11:42:42 +0530 Subject: [PATCH 18/29] Update Project.toml --- Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Project.toml b/Project.toml index 81907ef..d891019 100644 --- a/Project.toml +++ b/Project.toml @@ -29,7 +29,6 @@ MacroTools = "0.5.13" PrecompileTools = "1.2" QuantumClifford = "0.8.19, 0.9" QuantumInterface = "0.3.7" -QuantumOptics = "0.9" QuantumOpticsBase = "0.4.22, 0.5" SymbolicUtils = "3.7" Symbolics = "6" From d21161f56c4b0c0c920a54382112e73cf736b56e Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:04:40 +0530 Subject: [PATCH 19/29] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index d891019..c211b11 100644 --- a/Project.toml +++ b/Project.toml @@ -20,7 +20,7 @@ QuantumOpticsBase = "4f57444f-1401-5e15-980d-4471b28d5678" [extensions] MixedCliffordOpticsExt = ["QuantumClifford", "QuantumOpticsBase"] QuantumCliffordExt = "QuantumClifford" -QuantumOpticsExt = ["QuantumOpticsBase", "QuantumOptics"] +QuantumOpticsExt = ["QuantumOpticsBase"] [compat] Latexify = "0.16" From a388036c2071094efd228ba1857b8b3bd935f75a Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:04:46 +0530 Subject: [PATCH 20/29] Update Project.toml --- test/Project.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/Project.toml b/test/Project.toml index 6f266d4..9aac525 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -4,14 +4,13 @@ QuantumSymbolics = "efa7fd63-0460-4890-beb7-be1bbdfbaeae" Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" -InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27 wrapping-240" +InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" QuantumClifford = "0525e862-1e90-11e9-3e4d-1b39d7109de1" QuantumInterface = "5717a53b-5d69-4fa3-b976-0bf2f97ca1e5" -QuantumOptics = "6e0679c1-51ea-5a7c-ac74-d61b76210b0c" QuantumOpticsBase = "4f57444f-1401-5e15-980d-4471b28d5678" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" @@ -31,4 +30,4 @@ QuantumSavory = "0.1" QuantumSymbolics = "0.4" [targets] -test = ["Test", "TestItemRunner", "QuantumSavory", "QuantumOptics", "QuantumClifford", "QuantumInterface", "QuantumOpticsBase", "SymbolicUtils", "TermInterface"] +test = ["Test", "TestItemRunner", "QuantumSavory", "QuantumClifford", "QuantumInterface", "QuantumOpticsBase", "SymbolicUtils", "TermInterface"] From e5263b7a960973bf6659b83623f71964019a982c Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:26:46 +0530 Subject: [PATCH 21/29] Update ci.yml --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 705c365..c1f83e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,9 @@ jobs: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - uses: julia-actions/cache@v2 + - name: Update Julia Registries + run: | + julia -e 'import Pkg; Pkg.Registry.update()' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 env: From 9b9f248334ba61c2c6fd60a6607a9af6e428229f Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:42:27 +0530 Subject: [PATCH 22/29] Update Project.toml --- test/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index 9aac525..45a5aa7 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -26,7 +26,7 @@ TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" [compat] julia = "1" -QuantumSavory = "0.1" +QuantumSavory = "0.5" QuantumSymbolics = "0.4" [targets] From e7365f343380e8fb6ca5c508f24043558dc11fbe Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:47:41 +0530 Subject: [PATCH 23/29] Update ci.yml --- .github/workflows/ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c1f83e9..78a55c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,9 +51,11 @@ jobs: version: ${{ matrix.version }} arch: ${{ matrix.arch }} - uses: julia-actions/cache@v2 - - name: Update Julia Registries + # --- MODIFIED STEP TO UPDATE JULIA REGISTRIES (AGGRESSIVE) --- + - name: Update Julia Registries (Aggressive) run: | - julia -e 'import Pkg; Pkg.Registry.update()' + julia -e 'import Pkg; Pkg.Registry.rm("General"); Pkg.Registry.add("General"); Pkg.Registry.update()' + # --- END OF MODIFIED STEP --- - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 env: From d63df5ce56ef4e00dbf97adeedee1f24f9ae1c5e Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:53:39 +0530 Subject: [PATCH 24/29] Update Project.toml --- test/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index 45a5aa7..9aac525 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -26,7 +26,7 @@ TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" [compat] julia = "1" -QuantumSavory = "0.5" +QuantumSavory = "0.1" QuantumSymbolics = "0.4" [targets] From 175d5c3aef3e37b1636631521b4ddc12ce8b4664 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 12:59:15 +0530 Subject: [PATCH 25/29] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index c211b11..d48c577 100644 --- a/Project.toml +++ b/Project.toml @@ -19,7 +19,7 @@ QuantumOpticsBase = "4f57444f-1401-5e15-980d-4471b28d5678" [extensions] MixedCliffordOpticsExt = ["QuantumClifford", "QuantumOpticsBase"] -QuantumCliffordExt = "QuantumClifford" +QuantumCliffordExt = ["QuantumClifford"] QuantumOpticsExt = ["QuantumOpticsBase"] [compat] From c524ddea7f1c0ae83754c6dad33c32361001705c Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 13:00:52 +0530 Subject: [PATCH 26/29] Update Project.toml --- test/Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index 9aac525..45a5aa7 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -26,7 +26,7 @@ TestItemRunner = "f8b46487-2199-4994-9208-9a1283c18c0a" [compat] julia = "1" -QuantumSavory = "0.1" +QuantumSavory = "0.5" QuantumSymbolics = "0.4" [targets] From cc78eb53513f1df709b308c53d3c9937c1a6c8d0 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 13:12:04 +0530 Subject: [PATCH 27/29] Update ci-julia-nightly.yml --- .github/workflows/ci-julia-nightly.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-julia-nightly.yml b/.github/workflows/ci-julia-nightly.yml index 17506a3..3197026 100644 --- a/.github/workflows/ci-julia-nightly.yml +++ b/.github/workflows/ci-julia-nightly.yml @@ -38,6 +38,13 @@ jobs: with: channel: ${{ matrix.version }}~${{ matrix.arch }} - uses: julia-actions/cache@v2 + + # --- ADD THIS NEW STEP HERE (PAY CLOSE ATTENTION TO INDENTATION!) --- + - name: Update Julia Registries (Aggressive) + run: | + julia -e 'import Pkg; Pkg.Registry.rm("General"); Pkg.Registry.add("General"); Pkg.Registry.update()' + # --- END OF NEW STEP --- + - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 env: @@ -47,4 +54,4 @@ jobs: - uses: codecov/codecov-action@v5 with: file: lcov.info - token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file + token: ${{ secrets.CODECOV_TOKEN }} From 808a8eb5681c795aaa0f4a5df6771a1d3a3c0093 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 13:15:49 +0530 Subject: [PATCH 28/29] Update downgrade.yml --- .github/workflows/downgrade.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/downgrade.yml b/.github/workflows/downgrade.yml index 9af107d..1114527 100644 --- a/.github/workflows/downgrade.yml +++ b/.github/workflows/downgrade.yml @@ -25,5 +25,12 @@ jobs: with: skip: Pkg,TOML,InteractiveUtils,Random,LinearAlgebra - uses: julia-actions/cache@v2 + + + - name: Update Julia Registries (Aggressive) + run: | + julia -e 'import Pkg; Pkg.Registry.rm("General"); Pkg.Registry.add("General"); Pkg.Registry.update()' + + - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 \ No newline at end of file + - uses: julia-actions/julia-runtest@v1 From 3d2d50711e4d39657ea1a2474d26f88b058ed0b2 Mon Sep 17 00:00:00 2001 From: phantomgx Date: Sat, 31 May 2025 13:19:33 +0530 Subject: [PATCH 29/29] Update ci-julia-nightly.yml --- .github/workflows/ci-julia-nightly.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-julia-nightly.yml b/.github/workflows/ci-julia-nightly.yml index 3197026..2fa8e75 100644 --- a/.github/workflows/ci-julia-nightly.yml +++ b/.github/workflows/ci-julia-nightly.yml @@ -39,11 +39,11 @@ jobs: channel: ${{ matrix.version }}~${{ matrix.arch }} - uses: julia-actions/cache@v2 - # --- ADD THIS NEW STEP HERE (PAY CLOSE ATTENTION TO INDENTATION!) --- + # --- START OF ADDED/MODIFIED BLOCK --- - name: Update Julia Registries (Aggressive) run: | julia -e 'import Pkg; Pkg.Registry.rm("General"); Pkg.Registry.add("General"); Pkg.Registry.update()' - # --- END OF NEW STEP --- + # --- END OF ADDED/MODIFIED BLOCK --- - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1