@@ -793,14 +793,10 @@ TEST_CASE("Generators::applyGeneratorControlledPhaseShift",
793
793
}
794
794
795
795
TEST_CASE (" Generators::applyGeneratorSingleExcitation" , " [GateGenerators]" ) {
796
- std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix{
797
- // clang-format off
798
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 },
799
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , -1.0 }, {0.0 , 0.0 },
800
- {0.0 , 0.0 }, {0.0 , 1.0 }, {0.0 , 0.0 }, {0.0 , 0.0 },
801
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 }
802
- // clang-format on
803
- };
796
+ std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix (
797
+ 16 , {0.0 , 0.0 });
798
+ matrix[6 ] = {0.0 , -1.0 };
799
+ matrix[9 ] = {0.0 , 1.0 };
804
800
std::mt19937 re{1337U };
805
801
806
802
for (std::size_t num_qubits = 2 ; num_qubits <= 5 ; num_qubits++) {
@@ -875,14 +871,12 @@ TEST_CASE("Generators::applyGeneratorSingleExcitation", "[GateGenerators]") {
875
871
876
872
TEST_CASE (" Generators::applyGeneratorSingleExcitationMinus" ,
877
873
" [GateGenerators]" ) {
878
- std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix{
879
- // clang-format off
880
- {1.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 },
881
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 ,-1.0 }, {0.0 , 0.0 },
882
- {0.0 , 0.0 }, {0.0 , 1.0 }, {0.0 , 0.0 }, {0.0 , 0.0 },
883
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 }, {1.0 , 0.0 }
884
- // clang-format on
885
- };
874
+ std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix (
875
+ 16 , {0.0 , 0.0 });
876
+ matrix[0 ] = {1.0 , 0.0 };
877
+ matrix[6 ] = {0.0 , -1.0 };
878
+ matrix[9 ] = {0.0 , 1.0 };
879
+ matrix[15 ] = {1.0 , 0.0 };
886
880
std::mt19937 re{1337U };
887
881
888
882
for (std::size_t num_qubits = 2 ; num_qubits <= 5 ; num_qubits++) {
@@ -957,14 +951,12 @@ TEST_CASE("Generators::applyGeneratorSingleExcitationMinus",
957
951
958
952
TEST_CASE (" Generators::applyGeneratorSingleExcitationPlus" ,
959
953
" [GateGenerators]" ) {
960
- std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix{
961
- // clang-format off
962
- {-1.0 , 0.0 },{0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 },
963
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 ,-1.0 }, {0.0 , 0.0 },
964
- {0.0 , 0.0 }, {0.0 , 1.0 }, {0.0 , 0.0 }, {0.0 , 0.0 },
965
- {0.0 , 0.0 }, {0.0 , 0.0 }, {0.0 , 0.0 }, {-1.0 , 0.0 }
966
- // clang-format on
967
- };
954
+ std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix (
955
+ 16 , {0.0 , 0.0 });
956
+ matrix[0 ] = {-1.0 , 0.0 };
957
+ matrix[6 ] = {0.0 , -1.0 };
958
+ matrix[9 ] = {0.0 , 1.0 };
959
+ matrix[15 ] = {-1.0 , 0.0 };
968
960
std::mt19937 re{1337U };
969
961
970
962
for (std::size_t num_qubits = 2 ; num_qubits <= 5 ; num_qubits++) {
@@ -1058,26 +1050,10 @@ TEST_CASE("Generators::applyGeneratorDoubleExcitation_GPU",
1058
1050
*/
1059
1051
// clang-format on
1060
1052
1061
- std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix{
1062
- // clang-format off
1063
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1064
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1065
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1066
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , -1.0 },{0 , 0 },{0 , 0 },{0 , 0 },
1067
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1068
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1069
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1070
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1071
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1072
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1073
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1074
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1075
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 1.0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1076
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1077
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1078
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 }
1079
- // clang-format on
1080
- };
1053
+ std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix (
1054
+ 256 , {0.0 , 0.0 });
1055
+ matrix[60 ] = {0.0 , -1.0 };
1056
+ matrix[195 ] = {0.0 , 1.0 };
1081
1057
std::mt19937 re{1337U };
1082
1058
1083
1059
for (std::size_t num_qubits = 4 ; num_qubits <= 8 ; num_qubits++) {
@@ -1167,26 +1143,16 @@ TEST_CASE("Generators::applyGeneratorDoubleExcitation_GPU",
1167
1143
1168
1144
TEST_CASE (" Generators::applyGeneratorDoubleExcitationMinus_GPU" ,
1169
1145
" [GateGenerators]" ) {
1170
- std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix{
1171
- // clang-format off
1172
- {1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1173
- {0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1174
- {0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1175
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , -1.0 },{0 , 0 },{0 , 0 },{0 , 0 },
1176
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1177
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1178
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1179
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1180
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1181
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1182
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1183
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1184
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 1.0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1185
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },{0 , 0 },
1186
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 },{0 , 0 },
1187
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{1.0 , 0 }
1188
- // clang-format on
1189
- };
1146
+ std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix (
1147
+ 256 , {0.0 , 0.0 });
1148
+ matrix[60 ] = {0.0 , -1.0 };
1149
+ matrix[195 ] = {0.0 , 1.0 };
1150
+ for (std::size_t i = 0 ; i < 16 ; i++) {
1151
+ if (i != 3 && i != 12 ) {
1152
+ const size_t idx = i * 17 ;
1153
+ matrix[idx] = {1.0 , 0.0 };
1154
+ }
1155
+ }
1190
1156
std::mt19937 re{1337U };
1191
1157
1192
1158
for (std::size_t num_qubits = 4 ; num_qubits <= 8 ; num_qubits++) {
@@ -1276,26 +1242,16 @@ TEST_CASE("Generators::applyGeneratorDoubleExcitationMinus_GPU",
1276
1242
1277
1243
TEST_CASE (" Generators::applyGeneratorDoubleExcitationPlus_GPU" ,
1278
1244
" [GateGenerators]" ) {
1279
- std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix{
1280
- // clang-format off
1281
- {-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1282
- {0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1283
- {0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1284
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , -1.0 },{0 , 0 },{0 , 0 },{0 , 0 },
1285
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1286
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1287
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1288
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1289
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1290
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1291
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1292
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1293
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 1.0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },
1294
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },{0 , 0 },
1295
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 },{0 , 0 },
1296
- {0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{0 , 0 },{-1.0 , 0 }
1297
- // clang-format on
1298
- };
1245
+ std::vector<typename StateVectorCudaManaged<double >::CFP_t> matrix (
1246
+ 256 , {0.0 , 0.0 });
1247
+ matrix[60 ] = {0.0 , -1.0 };
1248
+ matrix[195 ] = {0.0 , 1.0 };
1249
+ for (std::size_t i = 0 ; i < 16 ; i++) {
1250
+ if (i != 3 && i != 12 ) {
1251
+ const size_t idx = i * 17 ;
1252
+ matrix[idx] = {-1.0 , 0.0 };
1253
+ }
1254
+ }
1299
1255
std::mt19937 re{1337U };
1300
1256
1301
1257
for (std::size_t num_qubits = 4 ; num_qubits <= 8 ; num_qubits++) {
0 commit comments