@@ -27,7 +27,7 @@ bool Rewrite::extend_for_PX_outputs_fun(ZXDiagram& diag) {
2727 !(diag.get_zxtype (n) == ZXType::PX &&
2828 !diag.get_vertex_ZXGen <CliffordGen>(n).get_param ())) {
2929 // Extend output
30- ZXGen_ptr px = std::make_shared<CliffordGen> (ZXType::PX , false );
30+ ZXGen_ptr px = ZXGen::create_gen (ZXType::PX , false );
3131 ZXVert n1 = diag.add_vertex (px);
3232 ZXVert n2 = diag.add_vertex (px);
3333 diag.remove_wire (diag.adj_wires (o).front ());
@@ -87,12 +87,12 @@ bool Rewrite::internalise_gadgets_fun(ZXDiagram& diag) {
8787 Expr new_param =
8888 (*axis_clifford == 0 ) ? -current_param : current_param;
8989 diag.set_vertex_ZXGen_ptr (
90- axis, std::make_shared<PhasedGen> (ZXType::YZ , new_param));
90+ axis, ZXGen::create_gen (ZXType::YZ , new_param));
9191 } else {
9292 Expr new_param =
9393 (*axis_clifford == 1 ) ? current_param : -current_param;
9494 diag.set_vertex_ZXGen_ptr (
95- axis, std::make_shared<PhasedGen> (ZXType::XZ , new_param));
95+ axis, ZXGen::create_gen (ZXType::XZ , new_param));
9696 }
9797 to_remove.push_back (v);
9898 break ;
@@ -101,7 +101,7 @@ bool Rewrite::internalise_gadgets_fun(ZXDiagram& diag) {
101101 Expr current_param = diag.get_vertex_ZXGen <PhasedGen>(v).get_param ();
102102 Expr new_param = axis_XY_angle - current_param;
103103 diag.set_vertex_ZXGen_ptr (
104- axis, std::make_shared<PhasedGen> (ZXType::XY , new_param));
104+ axis, ZXGen::create_gen (ZXType::XY , new_param));
105105 to_remove.push_back (v);
106106 break ;
107107 }
@@ -113,12 +113,12 @@ bool Rewrite::internalise_gadgets_fun(ZXDiagram& diag) {
113113 Expr new_param = (*axis_clifford == 0 ) ? 0.5 - current_param
114114 : current_param - 0.5 ;
115115 diag.set_vertex_ZXGen_ptr (
116- axis, std::make_shared<PhasedGen> (ZXType::XZ , new_param));
116+ axis, ZXGen::create_gen (ZXType::XZ , new_param));
117117 } else {
118118 Expr new_param = (*axis_clifford == 1 ) ? 0.5 - current_param
119119 : current_param - 0.5 ;
120120 diag.set_vertex_ZXGen_ptr (
121- axis, std::make_shared<PhasedGen> (ZXType::YZ , new_param));
121+ axis, ZXGen::create_gen (ZXType::YZ , new_param));
122122 }
123123 to_remove.push_back (v);
124124 break ;
@@ -127,7 +127,7 @@ bool Rewrite::internalise_gadgets_fun(ZXDiagram& diag) {
127127 bool current_param =
128128 diag.get_vertex_ZXGen <CliffordGen>(v).get_param ();
129129 diag.set_vertex_ZXGen_ptr (
130- axis, std::make_shared<CliffordGen> (ZXType::PZ , current_param));
130+ axis, ZXGen::create_gen (ZXType::PZ , current_param));
131131 to_remove.push_back (v);
132132 break ;
133133 }
@@ -138,14 +138,14 @@ bool Rewrite::internalise_gadgets_fun(ZXDiagram& diag) {
138138 Expr new_param =
139139 current_param ? axis_XY_angle + 0.5 : axis_XY_angle - 0.5 ;
140140 diag.set_vertex_ZXGen_ptr (
141- axis, std::make_shared<PhasedGen> (ZXType::XY , new_param));
141+ axis, ZXGen::create_gen (ZXType::XY , new_param));
142142 } else if (*axis_clifford % 2 == 0 ) {
143143 diag.set_vertex_ZXGen_ptr (
144- axis, std::make_shared<CliffordGen> (
144+ axis, ZXGen::create_gen (
145145 ZXType::PY , current_param ^ (*axis_clifford == 0 )));
146146 } else {
147147 diag.set_vertex_ZXGen_ptr (
148- axis, std::make_shared<CliffordGen> (
148+ axis, ZXGen::create_gen (
149149 ZXType::PX , !current_param ^ (*axis_clifford == 1 )));
150150 }
151151 to_remove.push_back (v);
@@ -157,14 +157,14 @@ bool Rewrite::internalise_gadgets_fun(ZXDiagram& diag) {
157157 if (!axis_clifford) {
158158 Expr new_param = current_param ? axis_XY_angle + 1 . : axis_XY_angle;
159159 diag.set_vertex_ZXGen_ptr (
160- axis, std::make_shared<PhasedGen> (ZXType::XY , new_param));
160+ axis, ZXGen::create_gen (ZXType::XY , new_param));
161161 } else if (*axis_clifford % 2 == 0 ) {
162162 diag.set_vertex_ZXGen_ptr (
163- axis, std::make_shared<CliffordGen> (
163+ axis, ZXGen::create_gen (
164164 ZXType::PX , !current_param ^ (*axis_clifford == 0 )));
165165 } else {
166166 diag.set_vertex_ZXGen_ptr (
167- axis, std::make_shared<CliffordGen> (
167+ axis, ZXGen::create_gen (
168168 ZXType::PY , !current_param ^ (*axis_clifford == 1 )));
169169 }
170170 to_remove.push_back (v);
0 commit comments