Skip to content
This repository was archived by the owner on Apr 1, 2018. It is now read-only.

Commit 01aa12c

Browse files
committed
Add Id, S and T gates
1 parent 5e3fa12 commit 01aa12c

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"array": "cpp",
66
"valarray": "cpp",
77
"locale": "cpp",
8-
"string": "cpp"
8+
"string": "cpp",
9+
"complex": "cpp"
910
}
1011
}

src/main.cpp

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,53 @@ namespace Gates {
3131

3232
static array Z = array(2, 2, (cfloat*) Z_coef);
3333

34+
// Hadamard Gate
3435
float H_coef[] = {
3536
1, 0, 1, 0,
3637
1, 0, -1, 0
3738
};
3839

3940
static array H = (1 / sqrt(2)) * array(2, 2, (cfloat*) H_coef);
41+
42+
// Identity Gate
43+
float Id_coef[] = {
44+
1, 0, 0, 0,
45+
0, 0, 1, 0
46+
};
47+
48+
static array Id = array(2, 2, (cfloat*) Id_coef);
49+
50+
// S Gate
51+
float S_coef[] = {
52+
1, 0, 0, 0,
53+
0, 0, 0, 1
54+
};
55+
56+
static array S = array(2, 2, (cfloat*) S_coef);
57+
58+
// S-Dagger Gate
59+
float SDagger_coef[] = {
60+
1, 0, 0, 0,
61+
0, 0, 0, -1
62+
};
63+
64+
static array SDagger = array(2, 2, (cfloat*) SDagger_coef);
65+
66+
// T / Pi over 8 Gate
67+
float T_coef[] = {
68+
1, 0, 0, 0,
69+
0, 0, 0.7071067811865475244008443621048490393, 0.7071067811865475244008443621048490393
70+
};
71+
72+
static array T = array(2, 2, (cfloat*) T_coef);
73+
74+
// T-Dagger Gate
75+
float TDagger_coef[] = {
76+
1, 0, 0, 0,
77+
0, 0, 0.7071067811865475244008443621048490393, -0.7071067811865475244008443621048490393
78+
};
79+
80+
static array TDagger = array(2, 2, (cfloat*) TDagger_coef);
4081
}
4182

4283

@@ -71,6 +112,5 @@ int main(int argc, char **argv) {
71112
array state = array(2, (cfloat*) state_coef);
72113

73114
af_print(matmul(Gates::X, state));
74-
75115
return 0;
76116
}

0 commit comments

Comments
 (0)