The Quantum Exact Simulation Toolkit v4.1.0
Loading...
Searching...
No Matches

Functions for applying the one-qubit S, T and Hadamard gates. More...

Functions

void applyControlledHadamard (Qureg qureg, int control, int target)
 
void applyControlledS (Qureg qureg, int control, int target)
 
void applyControlledT (Qureg qureg, int control, int target)
 
void applyHadamard (Qureg qureg, int target)
 
void applyMultiControlledHadamard (Qureg qureg, int *controls, int numControls, int target)
 
void applyMultiControlledS (Qureg qureg, int *controls, int numControls, int target)
 
void applyMultiControlledT (Qureg qureg, int *controls, int numControls, int target)
 
void applyMultiStateControlledHadamard (Qureg qureg, int *controls, int *states, int numControls, int target)
 
void applyMultiStateControlledS (Qureg qureg, int *controls, int *states, int numControls, int target)
 
void applyMultiStateControlledT (Qureg qureg, int *controls, int *states, int numControls, int target)
 
void applyS (Qureg qureg, int target)
 
void applyT (Qureg qureg, int target)
 

Detailed Description

Functions for applying the one-qubit S, T and Hadamard gates.

Function Documentation

◆ applyControlledHadamard()

void applyControlledHadamard ( Qureg qureg,
int control,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 700 of file operations.cpp.

700 {
701 validate_quregFields(qureg, __func__);
702 validate_controlAndTarget(qureg, control, target, __func__);
703
704 // harmlessly re-validates
705 applyMultiStateControlledHadamard(qureg, &control, nullptr, 1, target);
706}
void applyMultiStateControlledHadamard(Qureg qureg, int *controls, int *states, int numControls, int target)

◆ applyControlledS()

void applyControlledS ( Qureg qureg,
int control,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 598 of file operations.cpp.

598 {
599 validate_quregFields(qureg, __func__);
600 validate_controlAndTarget(qureg, control, target, __func__);
601
602 // harmlessly re-validates
603 applyMultiStateControlledS(qureg, &control, nullptr, 1, target);
604}
void applyMultiStateControlledS(Qureg qureg, int *controls, int *states, int numControls, int target)

◆ applyControlledT()

void applyControlledT ( Qureg qureg,
int control,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 649 of file operations.cpp.

649 {
650 validate_quregFields(qureg, __func__);
651 validate_controlAndTarget(qureg, control, target, __func__);
652
653 // harmlessly re-validates
654 applyMultiStateControlledT(qureg, &control, nullptr, 1, target);
655}
void applyMultiStateControlledT(Qureg qureg, int *controls, int *states, int numControls, int target)

◆ applyHadamard()

void applyHadamard ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 692 of file operations.cpp.

692 {
693 validate_quregFields(qureg, __func__);
694 validate_target(qureg, target, __func__);
695
696 // harmlessly re-validates
697 applyMultiStateControlledHadamard(qureg, nullptr, nullptr, 0, target);
698}

Referenced by applyQuantumFourierTransform().

◆ applyMultiControlledHadamard()

void applyMultiControlledHadamard ( Qureg qureg,
int * controls,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 708 of file operations.cpp.

708 {
709 validate_quregFields(qureg, __func__);
710 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
711
712 // harmlessly re-validates
713 applyMultiStateControlledHadamard(qureg, controls, nullptr, numControls, target);
714}

Referenced by applyMultiControlledHadamard().

◆ applyMultiControlledS()

void applyMultiControlledS ( Qureg qureg,
int * controls,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 606 of file operations.cpp.

606 {
607 validate_quregFields(qureg, __func__);
608 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
609
610 // harmlessly re-validates
611 applyMultiStateControlledS(qureg, controls, nullptr, numControls, target);
612}

Referenced by applyMultiControlledS().

◆ applyMultiControlledT()

void applyMultiControlledT ( Qureg qureg,
int * controls,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 657 of file operations.cpp.

657 {
658 validate_quregFields(qureg, __func__);
659 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
660
661 // harmlessly re-validates
662 applyMultiStateControlledT(qureg, controls, nullptr, numControls, target);
663}

Referenced by applyMultiControlledT().

◆ applyMultiStateControlledHadamard()

void applyMultiStateControlledHadamard ( Qureg qureg,
int * controls,
int * states,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!
See also
applyMultiStateControlledCompMatr1()

Definition at line 716 of file operations.cpp.

716 {
717
718 qcomp a = 1/std::sqrt(2);
719 CompMatr1 matr = getCompMatr1({
720 {a, a},
721 {a,-a}});
722
723 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, controls, states, numControls, &target, 1, matr, __func__);
724}
static CompMatr1 getCompMatr1(qcomp **in)
Definition matrices.h:325

Referenced by applyControlledHadamard(), applyHadamard(), applyMultiControlledHadamard(), and applyMultiStateControlledHadamard().

◆ applyMultiStateControlledS()

void applyMultiStateControlledS ( Qureg qureg,
int * controls,
int * states,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!
See also
applyMultiStateControlledCompMatr1()

Definition at line 614 of file operations.cpp.

614 {
615
616 DiagMatr1 matr = getDiagMatr1({1, 1_i});
617 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, controls, states, numControls, &target, 1, matr, __func__);
618}
static DiagMatr1 getDiagMatr1(qcomp *in)
Definition matrices.h:378

Referenced by applyControlledS(), applyMultiControlledS(), applyMultiStateControlledS(), and applyS().

◆ applyMultiStateControlledT()

void applyMultiStateControlledT ( Qureg qureg,
int * controls,
int * states,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!
See also
applyMultiStateControlledCompMatr1()

Definition at line 665 of file operations.cpp.

665 {
666
667 DiagMatr1 matr = getDiagMatr1({1, 1/std::sqrt(2) + 1_i/std::sqrt(2)});
668 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, controls, states, numControls, &target, 1, matr, __func__);
669}

Referenced by applyControlledT(), applyMultiControlledT(), applyMultiStateControlledT(), and applyT().

◆ applyS()

void applyS ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 590 of file operations.cpp.

590 {
591 validate_quregFields(qureg, __func__);
592 validate_target(qureg, target, __func__);
593
594 // harmlessly re-validates
595 applyMultiStateControlledS(qureg, nullptr, nullptr, 0, target);
596}

◆ applyT()

void applyT ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 641 of file operations.cpp.

641 {
642 validate_quregFields(qureg, __func__);
643 validate_target(qureg, target, __func__);
644
645 // harmlessly re-validates
646 applyMultiStateControlledT(qureg, nullptr, nullptr, 0, target);
647}