@@ -96,9 +96,7 @@ extern "C" {
96
96
void multiplyCompMatr1 (Qureg qureg, int target, CompMatr1 matrix);
97
97
98
98
99
- /* * @notyettested
100
- *
101
- * Multiplies a general one-qubit dense @p matrix upon the specified @p target
99
+ /* * Multiplies a general one-qubit dense @p matrix upon the specified @p target
102
100
* qubit of the density matrix @p qureg, from the right-hand side.
103
101
*
104
102
* @formulae
@@ -177,10 +175,8 @@ void multiplyCompMatr2(Qureg qureg, int target1, int target2, CompMatr2 matr);
177
175
178
176
179
177
// / @notyetdoced
180
- // / @notyettested
181
- // / @notyetvalidated
182
178
// / @see
183
- // / - postMultiplyCompMatr1
179
+ // / - postMultiplyCompMatr1()
184
180
void postMultiplyCompMatr2 (Qureg qureg, int target1, int target2, CompMatr2 matrix);
185
181
186
182
@@ -217,10 +213,8 @@ void multiplyCompMatr(Qureg qureg, int* targets, int numTargets, CompMatr matrix
217
213
218
214
219
215
// / @notyetdoced
220
- // / @notyettested
221
- // / @notyetvalidated
222
216
// / @see
223
- // / - postMultiplyCompMatr1
217
+ // / - postMultiplyCompMatr1()
224
218
void postMultiplyCompMatr (Qureg qureg, int * targets, int numTargets, CompMatr matrix);
225
219
226
220
@@ -272,9 +266,8 @@ extern "C" {
272
266
void multiplyDiagMatr1 (Qureg qureg, int target, DiagMatr1 matr);
273
267
274
268
275
- // / @notyettested
276
- // / @notyetvalidated
277
269
// / @notyetdoced
270
+ // / @see postMultiplyCompMatr1()
278
271
void postMultiplyDiagMatr1 (Qureg qureg, int target, DiagMatr1 matrix);
279
272
280
273
@@ -305,9 +298,8 @@ extern "C" {
305
298
void multiplyDiagMatr2 (Qureg qureg, int target1, int target2, DiagMatr2 matr);
306
299
307
300
308
- // / @notyettested
309
- // / @notyetvalidated
310
301
// / @notyetdoced
302
+ // / @see postMultiplyCompMatr1()
311
303
void postMultiplyDiagMatr2 (Qureg qureg, int target1, int target2, DiagMatr2 matrix);
312
304
313
305
@@ -338,9 +330,8 @@ extern "C" {
338
330
void multiplyDiagMatr (Qureg qureg, int * targets, int numTargets, DiagMatr matrix);
339
331
340
332
341
- // / @notyettested
342
- // / @notyetvalidated
343
333
// / @notyetdoced
334
+ // / @see postMultiplyCompMatr1()
344
335
void postMultiplyDiagMatr (Qureg qureg, int * targets, int numTargets, DiagMatr matrix);
345
336
346
337
@@ -351,9 +342,10 @@ void postMultiplyDiagMatr(Qureg qureg, int* targets, int numTargets, DiagMatr ma
351
342
void multiplyDiagMatrPower (Qureg qureg, int * targets, int numTargets, DiagMatr matrix, qcomp exponent);
352
343
353
344
354
- // / @notyettested
355
- // / @notyetvalidated
356
345
// / @notyetdoced
346
+ // / @see
347
+ // / - postMultiplyCompMatr1()
348
+ // / - applyDiagMatrPower()
357
349
void postMultiplyDiagMatrPower (Qureg qureg, int * targets, int numTargets, DiagMatr matrix, qcomp exponent);
358
350
359
351
@@ -419,27 +411,31 @@ extern "C" {
419
411
// / @notyetdoced
420
412
// / @notyetvalidated
421
413
// / @see
422
- // / - multiplyCompMatr1
414
+ // / - multiplyCompMatr1()
423
415
void multiplyFullStateDiagMatr (Qureg qureg, FullStateDiagMatr matrix);
424
416
425
417
426
418
// / @notyetdoced
427
- // / @notyettested
428
419
// / @notyetvalidated
420
+ // / @see
421
+ // / - postMultiplyCompMatr1()
422
+ // / - applyFullStateDiagMatr()
429
423
void postMultiplyFullStateDiagMatr (Qureg qureg, FullStateDiagMatr matrix);
430
424
431
425
432
426
// / @notyetdoced
433
427
// / @notyetvalidated
434
428
// / @see
435
- // / - multiplyCompMatr1
436
- // / - applyDiagMatrPower
429
+ // / - multiplyCompMatr1()
430
+ // / - applyFullStateDiagMatr()
437
431
void multiplyFullStateDiagMatrPower (Qureg qureg, FullStateDiagMatr matrix, qcomp exponent);
438
432
439
433
440
434
// / @notyetdoced
441
- // / @notyettested
442
435
// / @notyetvalidated
436
+ // / @see
437
+ // / - postMultiplyCompMatr1()
438
+ // / - applyFullStateDiagMatr()
443
439
void postMultiplyFullStateDiagMatrPower (Qureg qureg, FullStateDiagMatr matrix, qcomp exponent);
444
440
445
441
@@ -466,13 +462,16 @@ extern "C" {
466
462
467
463
468
464
// / @notyetdoced
469
- // / @see multiplyCompMatr1()
465
+ // / @see
466
+ // / - multiplyCompMatr1()
467
+ // / - applySwap()
470
468
void multiplySwap (Qureg qureg, int qubit1, int qubit2);
471
469
472
470
473
471
// / @notyetdoced
474
- // / @notyettested
475
- // / @notyetvalidated
472
+ // / @see
473
+ // / - multiplyCompMatr1()
474
+ // / - applySwap()
476
475
void postMultiplySwap (Qureg qureg, int qubit1, int qubit2);
477
476
478
477
@@ -499,38 +498,44 @@ extern "C" {
499
498
500
499
501
500
// / @notyetdoced
502
- // / @notyettested
503
- // / @see multiplyCompMatr1()
501
+ // / @see
502
+ // / - multiplyCompMatr1()
503
+ // / - applyPauliX()
504
504
void multiplyPauliX (Qureg qureg, int target);
505
505
506
506
507
507
// / @notyetdoced
508
- // / @notyettested
509
- // / @see multiplyCompMatr1()
508
+ // / @see
509
+ // / - multiplyCompMatr1()
510
+ // / - applyPauliY()
510
511
void multiplyPauliY (Qureg qureg, int target);
511
512
512
513
513
514
// / @notyetdoced
514
- // / @notyettested
515
- // / @see multiplyCompMatr1()
515
+ // / @see
516
+ // / - multiplyCompMatr1()
517
+ // / - applyPauliZ()
516
518
void multiplyPauliZ (Qureg qureg, int target);
517
519
518
520
519
521
// / @notyetdoced
520
- // / @notyettested
521
- // / @see postMultiplyCompMatr1()
522
+ // / @see
523
+ // / - postMultiplyCompMatr1()
524
+ // / - applyPauliX()
522
525
void postMultiplyPauliX (Qureg qureg, int target);
523
526
524
527
525
528
// / @notyetdoced
526
- // / @notyettested
527
- // / @see postMultiplyCompMatr1()
529
+ // / @see
530
+ // / - postMultiplyCompMatr1()
531
+ // / - applyPauliY()
528
532
void postMultiplyPauliY (Qureg qureg, int target);
529
533
530
534
531
535
// / @notyetdoced
532
- // / @notyettested
533
- // / @see postMultiplyCompMatr1()
536
+ // / @see
537
+ // / - postMultiplyCompMatr1()
538
+ // / - applyPauliZ()
534
539
void postMultiplyPauliZ (Qureg qureg, int target);
535
540
536
541
@@ -557,13 +562,16 @@ extern "C" {
557
562
558
563
559
564
// / @notyetdoced
560
- // / @see multiplyCompMatr1()
565
+ // / @see
566
+ // / - multiplyCompMatr1()
567
+ // / - applyPauliStr()
561
568
void multiplyPauliStr (Qureg qureg, PauliStr str);
562
569
563
570
564
571
// / @notyetdoced
565
- // / @notyettested
566
- // / @notyetvalidated
572
+ // / @see
573
+ // / - postMultiplyCompMatr1()
574
+ // / - applyPauliStr()
567
575
void postMultiplyPauliStr (Qureg qureg, PauliStr str);
568
576
569
577
@@ -597,8 +605,9 @@ void multiplyPauliGadget(Qureg qureg, PauliStr str, qreal angle);
597
605
598
606
599
607
// / @notyetdoced
600
- // / @notyettested
601
- // / @notyetvalidated
608
+ // / @see
609
+ // / - postMultiplyCompMatr1()
610
+ // / - applyPauliGadget()
602
611
void postMultiplyPauliGadget (Qureg qureg, PauliStr str, qreal angle);
603
612
604
613
@@ -627,13 +636,14 @@ extern "C" {
627
636
// / @notyetdoced
628
637
// / @see
629
638
// / - multiplyCompMatr1()
630
- // / - applyPhaseGadget
639
+ // / - applyPhaseGadget()
631
640
void multiplyPhaseGadget (Qureg qureg, int * targets, int numTargets, qreal angle);
632
641
633
642
634
643
// / @notyetdoced
635
- // / @notyettested
636
- // / @notyetvalidated
644
+ // / @see
645
+ // / - postMultiplyCompMatr1()
646
+ // / - applyPhaseGadget()
637
647
void postMultiplyPhaseGadget (Qureg qureg, int * targets, int numTargets, qreal angle);
638
648
639
649
@@ -681,13 +691,17 @@ extern "C" {
681
691
682
692
683
693
// / @notyetdoced
684
- // / @see multiplyCompMatr1()
694
+ // / @see
695
+ // / - multiplyCompMatr1()
696
+ // / - applyMultiQubitNot()
685
697
void multiplyMultiQubitNot (Qureg qureg, int * targets, int numTargets);
686
698
687
699
688
700
// / @notyetdoced
689
- // / @notyettested
690
701
// / @notyetvalidated
702
+ // / @see
703
+ // / - postMultiplyCompMatr1()
704
+ // / - applyMultiQubitNot()
691
705
void postMultiplyMultiQubitNot (Qureg qureg, int * targets, int numTargets);
692
706
693
707
@@ -699,15 +713,13 @@ void postMultiplyMultiQubitNot(Qureg qureg, int* targets, int numTargets);
699
713
#ifdef __cplusplus
700
714
701
715
702
- // / @notyettested
703
716
// / @notyetvalidated
704
717
// / @notyetdoced
705
718
// / @cppvectoroverload
706
719
// / @see multiplyMultiQubitNot()
707
720
void multiplyMultiQubitNot (Qureg qureg, std::vector<int > targets);
708
721
709
722
710
- // / @notyettested
711
723
// / @notyetvalidated
712
724
// / @notyetdoced
713
725
// / @cppvectoroverload
@@ -721,6 +733,57 @@ void postMultiplyMultiQubitNot(Qureg qureg, std::vector<int> targets);
721
733
722
734
723
735
736
+ /* *
737
+ * @defgroup mult_projectors Projectors
738
+ * @brief Functions for pre- or post-multiplying projectors upon density matrices.
739
+ * @{
740
+ */
741
+
742
+
743
+ #ifdef __cplusplus
744
+ extern " C" {
745
+ #endif
746
+
747
+
748
+ // / @notyetdoced
749
+ // / @notyetvalidated
750
+ // / @see
751
+ // / - multiplyCompMatr1()
752
+ // / - applyQubitProjector()
753
+ void multiplyQubitProjector (Qureg qureg, int qubit, int outcome);
754
+
755
+
756
+ // / @notyetdoced
757
+ // / @notyetvalidated
758
+ // / @see
759
+ // / - multiplyCompMatr1()
760
+ // / - applyMultiQubitProjector()
761
+ void multiplyMultiQubitProjector (Qureg qureg, int * qubits, int * outcomes, int numQubits);
762
+
763
+
764
+ // / @notyetdoced
765
+ // / @notyetvalidated
766
+ // / @see
767
+ // / - postMultiplyCompMatr1()
768
+ // / - applyQubitProjector()
769
+ void postMultiplyQubitProjector (Qureg qureg, int qubit, int outcome);
770
+
771
+
772
+ // / @notyetdoced
773
+ // / @notyetvalidated
774
+ // / @see
775
+ // / - postMultiplyCompMatr1()
776
+ // / - applyMultiQubitProjector()
777
+ void postMultiplyMultiQubitProjector (Qureg qureg, int * qubits, int * outcomes, int numQubits);
778
+
779
+
780
+ // end de-mangler
781
+ #ifdef __cplusplus
782
+ }
783
+ #endif
784
+
785
+
786
+
724
787
/* *
725
788
* @defgroup mult_paulistrsum PauliStrSum
726
789
* @brief Functions for pre- or post-multiplying weighted sums of Pauli
@@ -741,8 +804,8 @@ void multiplyPauliStrSum(Qureg qureg, PauliStrSum sum, Qureg workspace);
741
804
742
805
743
806
// / @notyetdoced
744
- // / @notyettested
745
807
// / @notyetvalidated
808
+ // / @see multiplyCompMatr1()
746
809
void postMultiplyPauliStrSum (Qureg qureg, PauliStrSum sum, Qureg workspace);
747
810
748
811
0 commit comments