Writing the notation when gates act on non successive registers
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{
margin-bottom:0;
}
$begingroup$
Suppose I have registers $|arangle^{l}|brangle^{l} |crangle^{l}$ and want an adder mod $l$ gate between the $a$ and $c$ registers. Let $R$ be the adder mod $l$ gate. So is this the correct notation for an operator $U$ that implements this $$ U=Rotimes I_b^{otimes l}.$$ But how do I convey that $R$ is between $a$ and $c$ and $I$ is for the register $b$?
quantum-gate quantum-state notation tensor-product
$endgroup$
add a comment
|
$begingroup$
Suppose I have registers $|arangle^{l}|brangle^{l} |crangle^{l}$ and want an adder mod $l$ gate between the $a$ and $c$ registers. Let $R$ be the adder mod $l$ gate. So is this the correct notation for an operator $U$ that implements this $$ U=Rotimes I_b^{otimes l}.$$ But how do I convey that $R$ is between $a$ and $c$ and $I$ is for the register $b$?
quantum-gate quantum-state notation tensor-product
$endgroup$
add a comment
|
$begingroup$
Suppose I have registers $|arangle^{l}|brangle^{l} |crangle^{l}$ and want an adder mod $l$ gate between the $a$ and $c$ registers. Let $R$ be the adder mod $l$ gate. So is this the correct notation for an operator $U$ that implements this $$ U=Rotimes I_b^{otimes l}.$$ But how do I convey that $R$ is between $a$ and $c$ and $I$ is for the register $b$?
quantum-gate quantum-state notation tensor-product
$endgroup$
Suppose I have registers $|arangle^{l}|brangle^{l} |crangle^{l}$ and want an adder mod $l$ gate between the $a$ and $c$ registers. Let $R$ be the adder mod $l$ gate. So is this the correct notation for an operator $U$ that implements this $$ U=Rotimes I_b^{otimes l}.$$ But how do I convey that $R$ is between $a$ and $c$ and $I$ is for the register $b$?
quantum-gate quantum-state notation tensor-product
quantum-gate quantum-state notation tensor-product
edited May 28 at 14:10
Sanchayan Dutta
8,2694 gold badges18 silver badges64 bronze badges
8,2694 gold badges18 silver badges64 bronze badges
asked May 28 at 10:11
UpstartUpstart
4171 silver badge9 bronze badges
4171 silver badge9 bronze badges
add a comment
|
add a comment
|
2 Answers
2
active
oldest
votes
$begingroup$
Personally, I would just define $R_{ac}$ to be the unitary that acts $R$ between registers $a$ and $c$, and acts as identity everywhere else.
$endgroup$
add a comment
|
$begingroup$
As always with notation there is not a "correct" way of doing things: it's just arbitrary conventions.
The most readable notation I see for your example involves separating the unitary $R$ into 2 virtual unitary matrices:
$R_a$ the portion that acts on $vert a rangle^l$.
$R_c$ the portion that acts on $vert c rangle^l$.
and "defining" $R$ as
$$
R = R_a otimes R_c.
$$
I called the matrices $R_a$ and $R_c$ "virtual unitaries because it is likely that they do not exist: the decomposition $R = R_a otimes R_c$ will probably be impossible to compute because the matrix $R$ cannot be split as 2 separate transformations on $vert a rangle^l$ and $vert c rangle^l$.
Warning with this kind of non-standard notation: as the matrices involved are not really matrices (they are introduced just for the notation and might not exist), it may add more complexity/confusion than it helps.
In the end, your operation on $vert a rangle^lvert b rangle^lvert c rangle^l$ may be written as
$$
U = R_a otimes I otimes R_c.
$$
$endgroup$
add a comment
|
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "694"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/4.0/"u003ecc by-sa 4.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fquantumcomputing.stackexchange.com%2fquestions%2f6256%2fwriting-the-notation-when-gates-act-on-non-successive-registers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Personally, I would just define $R_{ac}$ to be the unitary that acts $R$ between registers $a$ and $c$, and acts as identity everywhere else.
$endgroup$
add a comment
|
$begingroup$
Personally, I would just define $R_{ac}$ to be the unitary that acts $R$ between registers $a$ and $c$, and acts as identity everywhere else.
$endgroup$
add a comment
|
$begingroup$
Personally, I would just define $R_{ac}$ to be the unitary that acts $R$ between registers $a$ and $c$, and acts as identity everywhere else.
$endgroup$
Personally, I would just define $R_{ac}$ to be the unitary that acts $R$ between registers $a$ and $c$, and acts as identity everywhere else.
answered May 28 at 15:52
DaftWullieDaftWullie
21k1 gold badge9 silver badges53 bronze badges
21k1 gold badge9 silver badges53 bronze badges
add a comment
|
add a comment
|
$begingroup$
As always with notation there is not a "correct" way of doing things: it's just arbitrary conventions.
The most readable notation I see for your example involves separating the unitary $R$ into 2 virtual unitary matrices:
$R_a$ the portion that acts on $vert a rangle^l$.
$R_c$ the portion that acts on $vert c rangle^l$.
and "defining" $R$ as
$$
R = R_a otimes R_c.
$$
I called the matrices $R_a$ and $R_c$ "virtual unitaries because it is likely that they do not exist: the decomposition $R = R_a otimes R_c$ will probably be impossible to compute because the matrix $R$ cannot be split as 2 separate transformations on $vert a rangle^l$ and $vert c rangle^l$.
Warning with this kind of non-standard notation: as the matrices involved are not really matrices (they are introduced just for the notation and might not exist), it may add more complexity/confusion than it helps.
In the end, your operation on $vert a rangle^lvert b rangle^lvert c rangle^l$ may be written as
$$
U = R_a otimes I otimes R_c.
$$
$endgroup$
add a comment
|
$begingroup$
As always with notation there is not a "correct" way of doing things: it's just arbitrary conventions.
The most readable notation I see for your example involves separating the unitary $R$ into 2 virtual unitary matrices:
$R_a$ the portion that acts on $vert a rangle^l$.
$R_c$ the portion that acts on $vert c rangle^l$.
and "defining" $R$ as
$$
R = R_a otimes R_c.
$$
I called the matrices $R_a$ and $R_c$ "virtual unitaries because it is likely that they do not exist: the decomposition $R = R_a otimes R_c$ will probably be impossible to compute because the matrix $R$ cannot be split as 2 separate transformations on $vert a rangle^l$ and $vert c rangle^l$.
Warning with this kind of non-standard notation: as the matrices involved are not really matrices (they are introduced just for the notation and might not exist), it may add more complexity/confusion than it helps.
In the end, your operation on $vert a rangle^lvert b rangle^lvert c rangle^l$ may be written as
$$
U = R_a otimes I otimes R_c.
$$
$endgroup$
add a comment
|
$begingroup$
As always with notation there is not a "correct" way of doing things: it's just arbitrary conventions.
The most readable notation I see for your example involves separating the unitary $R$ into 2 virtual unitary matrices:
$R_a$ the portion that acts on $vert a rangle^l$.
$R_c$ the portion that acts on $vert c rangle^l$.
and "defining" $R$ as
$$
R = R_a otimes R_c.
$$
I called the matrices $R_a$ and $R_c$ "virtual unitaries because it is likely that they do not exist: the decomposition $R = R_a otimes R_c$ will probably be impossible to compute because the matrix $R$ cannot be split as 2 separate transformations on $vert a rangle^l$ and $vert c rangle^l$.
Warning with this kind of non-standard notation: as the matrices involved are not really matrices (they are introduced just for the notation and might not exist), it may add more complexity/confusion than it helps.
In the end, your operation on $vert a rangle^lvert b rangle^lvert c rangle^l$ may be written as
$$
U = R_a otimes I otimes R_c.
$$
$endgroup$
As always with notation there is not a "correct" way of doing things: it's just arbitrary conventions.
The most readable notation I see for your example involves separating the unitary $R$ into 2 virtual unitary matrices:
$R_a$ the portion that acts on $vert a rangle^l$.
$R_c$ the portion that acts on $vert c rangle^l$.
and "defining" $R$ as
$$
R = R_a otimes R_c.
$$
I called the matrices $R_a$ and $R_c$ "virtual unitaries because it is likely that they do not exist: the decomposition $R = R_a otimes R_c$ will probably be impossible to compute because the matrix $R$ cannot be split as 2 separate transformations on $vert a rangle^l$ and $vert c rangle^l$.
Warning with this kind of non-standard notation: as the matrices involved are not really matrices (they are introduced just for the notation and might not exist), it may add more complexity/confusion than it helps.
In the end, your operation on $vert a rangle^lvert b rangle^lvert c rangle^l$ may be written as
$$
U = R_a otimes I otimes R_c.
$$
edited May 28 at 17:36
answered May 28 at 11:48
NelimeeNelimee
2,0995 silver badges35 bronze badges
2,0995 silver badges35 bronze badges
add a comment
|
add a comment
|
Thanks for contributing an answer to Quantum Computing Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fquantumcomputing.stackexchange.com%2fquestions%2f6256%2fwriting-the-notation-when-gates-act-on-non-successive-registers%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown