1
1
module ZXCalculus
2
2
3
- # import Graphs: has_vertex
4
-
5
- # using Graphs:
6
- # nv,
7
- # ne,
8
- # outneighbors,
9
- # inneighbors,
10
- # neighbors,
11
- # rem_edge!,
12
- # add_edge!,
13
- # has_edge,
14
- # degree,
15
- # indegree,
16
- # outdegree
17
-
18
3
module Utils
19
4
20
5
using Expronicon. ADT: @const_use , @adt
@@ -33,8 +18,8 @@ using YaoHIR.IntrinsicOperation
33
18
using YaoHIR: Chain
34
19
using YaoLocations: plain
35
20
using MLStyle
21
+ using .. Utils: Scalar, Phase, add_phase!
36
22
37
- using ZXCalculus. Utils: Scalar, Phase, add_phase!
38
23
import .. Utils: add_power!
39
24
40
25
export spiders,
@@ -63,21 +48,18 @@ include("circuit_extraction.jl")
63
48
include (" phase_teleportation.jl" )
64
49
65
50
include (" ir.jl" )
66
-
67
51
end
68
52
69
-
70
53
module ZXW
54
+
71
55
using Expronicon. ADT: @const_use , @adt
72
56
using MLStyle, Multigraphs, Graphs
73
57
using .. Utils: Scalar, Phase, Parameter, PiUnit, Factor, add_phase!
74
58
using .. ZX: safe_convert, AbstractRule, Rule, Match
59
+
75
60
import .. Utils: add_power!
76
61
import .. ZX:
77
62
rewrite!, simplify!, push_gate!, pushfirst_gate!, spiders, rem_spider!, rem_spiders!
78
- # import Multigraphs: has_vertex
79
- # import ..rewrite!, ..add_power!, ..add_edge!, ..vertices, ..nv, ..round_phases!
80
-
81
63
82
64
export ZXWDiagram, substitute_variables!
83
65
@@ -88,58 +70,65 @@ include("utils.jl")
88
70
89
71
end # module ZXW
90
72
91
- # using .ZXW: ZXWDiagram, CalcRule
92
-
93
- # export ZXWDiagram, CalcRule
94
-
95
-
96
- # include("planar_multigraph.jl")
97
-
98
- # module ZW
99
- # using Expronicon.ADT: @adt, @const_use
100
- # using MLStyle, Graphs
101
- # using ..ZXCalculus
102
- # using ..ZXCalculus.ZXW: _round_phase, Parameter
103
- # # these will be changed to using PlanarMultigraph: vertices after we split out package
104
- # using ..ZXCalculus:
105
- # vertices,
106
- # nv,
107
- # has_vertex,
108
- # ne,
109
- # neighbors,
110
- # rem_edge!,
111
- # add_edge!,
112
- # degree,
113
- # next,
114
- # split_vertex!,
115
- # split_edge!,
116
- # face,
117
- # trace_face,
118
- # make_hole!,
119
- # add_vertex_and_facet_to_boarder!,
120
- # split_facet!,
121
- # twin,
122
- # prev,
123
- # add_multiedge!,
124
- # join_facet!,
125
- # trace_vertex,
126
- # join_vertex!
127
-
128
-
129
-
130
-
131
- # # these remains
132
- # using ..ZXCalculus: add_phase!
133
- # import ..ZXCalculus: add_power!, add_global_phase!, scalar, spiders, rem_spider!
134
- # import Graphs.rem_edge!
135
-
136
-
137
- # include("zw_adt.jl")
138
- # include("zw_diagram.jl")
139
- # include("zw_utils.jl")
140
- # end # module ZW
73
+ module PMG
74
+
75
+ using Graphs
76
+
77
+ import Graphs: AbstractEdge, src, dst, nv, ne, neighbors
78
+ import Graphs. SimpleGraphs: vertices
79
+
80
+ export HalfEdge, src, dst, new_edge, PlanarMultigraph
81
+
82
+ include (" planar_multigraph.jl" )
83
+
84
+ end # module PlanarMultigraph
85
+
86
+ module ZW
87
+ using Expronicon. ADT: @adt , @const_use
88
+ using MLStyle, Graphs
89
+ using .. ZXW: _round_phase, Parameter
90
+
91
+ # these will be changed to using PlanarMultigraph: vertices after we split out package
92
+ using .. PMG:
93
+ vertices,
94
+ nv,
95
+ has_vertex,
96
+ ne,
97
+ neighbors,
98
+ rem_edge!,
99
+ add_edge!,
100
+ degree,
101
+ next,
102
+ split_vertex!,
103
+ split_edge!,
104
+ face,
105
+ trace_face,
106
+ make_hole!,
107
+ add_vertex_and_facet_to_boarder!,
108
+ split_facet!,
109
+ twin,
110
+ prev,
111
+ add_multiedge!,
112
+ join_facet!,
113
+ trace_vertex,
114
+ join_vertex!
115
+
116
+ # these remains
117
+ using .. Utils: add_phase!, Scalar, Phase, Parameter, PiUnit, Factor, add_power!
118
+ using .. PMG: PlanarMultigraph, HalfEdge, new_edge, src, dst
119
+ import .. Utils: add_power!
120
+ import .. ZX: add_global_phase!, scalar, spiders, rem_spider!
121
+ import Graphs. rem_edge!
122
+
123
+ export ZWDiagram
124
+
125
+ include (" zw_adt.jl" )
126
+ include (" zw_diagram.jl" )
127
+ include (" zw_utils.jl" )
128
+ end # module ZW
141
129
142
130
module Application
131
+
143
132
using OMEinsum, MLStyle
144
133
using .. ZXW: ZXWDiagram, Z, X, W, H, D, Input, Output
145
134
using .. Utils: PiUnit, Factor, Parameter, unwrap_scalar
0 commit comments