Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/circuits/QCircuit.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Wed Aug 3 10:14:23 2011 UTC (12 years, 8 months ago) by kaityo
File MIME type: text/x-c++src
File size: 3053 byte(s)
First commit
1 //---------------------------------------------------------------------------
2 // Class for Circuits
3 //---------------------------------------------------------------------------
4 #include "QCircuit.h"
5 #include "QCircuitAll.h"
6
7 //---------------------------------------------------------------------------
8 QCircuit::QCircuit(int x,int y) {
9 X = x;
10 Y = y;
11 }
12 //---------------------------------------------------------------------------
13 int
14 QCircuit::GetType(string Type) {
15
16 if (Type =="QBitBox") {
17 return QC_BITBOX;
18 } else if (Type =="QWalsh") {
19 return QC_WALSH;
20 } else if (Type == "QCNot") {
21 return QC_CNOT;
22 } else if (Type == "QCCNot") {
23 return QC_CCNOT;
24 } else if (Type == "QMeasure") {
25 return QC_MEASURE;
26 } else if (Type == "QTextBox") {
27 return QC_TEXTBOX;
28 } else if (Type == "QPauliX") {
29 return QC_PAULIX;
30 } else if (Type == "QPauliY") {
31 return QC_PAULIY;
32 } else if (Type == "QPauliZ") {
33 return QC_PAULIZ;
34 } else if (Type == "QSwap") {
35 return QC_SWAP;
36 } else if (Type == "QCRot") {
37 return QC_CROT;
38 } else if (Type == "QNOT") {
39 return QC_NOT;
40 } else if (Type == "QRot") {
41 return QC_ROT;
42 }
43 return -1;
44 }
45 //---------------------------------------------------------------------------
46 const char*
47 QCircuit::GetTypeStr(int Type) {
48 switch (Type) {
49 case QC_BITBOX:
50 return "QBitbox";
51
52 case QC_WALSH:
53 return "QWalsh";
54
55 case QC_CNOT:
56 return "QCNot";
57
58 case QC_CCNOT:
59 return "QCCNot";
60
61 case QC_MEASURE:
62 return "QMesure";
63
64 case QC_TEXTBOX:
65 return "QTextBox";
66
67 case QC_PAULIX:
68 return "QPauliX";
69
70 case QC_PAULIY:
71 return "QPauliY";
72
73 case QC_PAULIZ:
74 return "QPauliZ";
75
76 case QC_SWAP:
77 return "QSwap";
78
79 case QC_CROT:
80 return "QCRot";
81 }
82 return "";
83 }
84 //---------------------------------------------------------------------------
85 QCircuit*
86 QCircuit::Create(string TypeStr, int x, int y, string Param) {
87
88 QCircuit *qc;
89 int Type = GetType(TypeStr);
90 switch (Type) {
91
92 case QC_BITBOX:
93 return new QBitbox(x,y,Param);
94
95 case QC_WALSH:
96 return new QWalsh(x,y);
97
98 case QC_MEASURE:
99 return new QMeasure(x,y);
100
101 case QC_PAULIX:
102 return new QPauliX(x,y);
103
104 case QC_PAULIY:
105 return new QPauliY(x,y);
106
107 case QC_PAULIZ:
108 return new QPauliZ(x,y);
109
110 case QC_ROT:
111 return new QRot(x,y,Param);
112
113 case QC_NOT:
114 return new QNot(x, y);
115
116 case QC_CNOT:
117 return new QCNot(x,y,Param);
118
119 case QC_CCNOT:
120 return new QCCNot(x,y,Param);
121
122 case QC_SWAP:
123 return new QSwap(x,y, Param);
124
125 case QC_CROT:
126 return new QCRot(x,y, Param);
127 }
128 return NULL;
129 }
130 //---------------------------------------------------------------------------
131 string
132 QCircuit::GetSaveText(void) {
133 ostringstream os;
134 os << X << "," << Y << "," << Name << ",\""<< GetParam() << "\"";
135 return os.str();
136 }
137 //---------------------------------------------------------------------------
138

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26