qat.lang.SWAP

qat.lang.SWAP

Definition of the \(SWAP\) gate (of arity \(2\)). This gate is part of the default gate set of myQLM and is defined in the default gate set default_gate_set().

from qat.lang import qrout, SWAP

@qrout
def circ():
    SWAP(0, 1)
data:image/png;base64,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
from qat.lang import qrout, SWAP

@qrout
def ctrl_circ():
    SWAP.ctrl()(0, 1, 2)
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzcAAAHZCAQAAAARCQ2KAAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAAAooAAAKKAHc+pAoAAAAHdElNRQfqCgEWDig6mrc2AAAkxElEQVR42u3de5AdV2Hn8d88NDN6QbwYSMUVY6GZkR/ABkKIEluy5aVCLJJdqMTSjMZAZcEFBFJxLI+crS3A2WyR2DOjsZSNN+Vs7ZpYr5Ft2AIjFxA9jKOksgs4hCTy6GWZVEomGEu2NRqNNNLNH5q5vo8+fftxTj+/n/uHrZ7u031Pn76/e/r07ZYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA4bSV//zdoVhV16KRO0xgAAHbdoQk9p0rD66iGQ5TRr4oq2kZlAgCaDWu6KWbqXy9oUYBytlTnBwCgzq4WQfP6a3OIkgAAqNppCJZTOqRJHdKphukzPmWdqJlvB1ULALhszDNo9ummhvkGGsZzFnuWdqluniGqFwAgrfKMmu3G+a+um691LwkAAB30iJppdbVY6lh13tmGvzzWVBoAoOS6Pfs1o4GWPVCdf7xm6sYQvSQAQCms9wybwcDLT1WXmb8serVHeYzcAECpPe4ZNp0hSuipLnV8bopXiQCAEvO+6Lk7ZCnj1SWvlDRJ3AAAal2M3bNRQ39mr24LeX0bAKDgZmOO2dRaV/OjzwojNwCAeds9Y2Escnn+t7oBAJTSbs9QOB6jxG3EDQCg3riDULjFJ2wYuQGAEho0hMJAzHLNccPIDQCUzkJDJByLXfIhTqUBgA3thXgXZw3Tl8cu+Ss0EQAgbi7bZZg+ZqHsDsP0AzQdACiXVU5Pdz1iKHuYigeAcon6AOh4pS+m4gGgTA46Hsp3faHADerTNfpzXaM+Xc/uBFBcnbne+rfrlw1/2W2l/DWG6QdilnurPqhfV1/NlE9U/++wvq49+kuaJlJ3nd6j92lWF7RBL+ivtUBdGtPLeoWqQfm4/sX/iPWRm//Q4k4Fr7926Vp2MFLxEe1o0ToP68Hqk6CAEtjqczDYMWV15OaOgEFT+7uhXnYzEg2a/aFa6KiWUGkod99m0PEaonjeo5y9GtfV6lWf+rRM6zx7Psf5FolEbA79dWj+y91HqDyU9+Cwo9dQ+v7QJW1oKuM5401wuj1C50F2NzIZNa+/llGJKGPfZp/jQzDsyE3zo6zf1nKZYw1LvMAOhyObYkfN5dcJqhLFNO7T7DdYWseklZGbiYalHw243O0Ny51np8OB45bC5vJrExWKMvVtKs7XEUbjM3gmQizb3rDsDLsdVq2yGjWXX89QrSiWQZ/mvtfSOvosjNw82LDszpDb0NGw/AV2Pax50EHYcM8NFM50At358dgjN6sbljwSYSsaT6kdZOfDit3OwqaiinqoYBTD4kROpcUfubGzZfs5Ow7rJpyGTUUVdVPJKILRXIzcfLthuTFrWwJkPWzo4aAg/Jr4A5bWEXfk5maLIdF4Q5EdNAHE8HgiYcMYDgqg37eB32ppLXFHbioxLxLwL62fZoCI1icWNvTEkXujORi52WD5TPaZphvbAFF0Jxo2/DwZOefXuCedryXq0rYjlvuowfbR4+bFc29R0ANm3NI64o3cNC/9aMztWd5UIuM3sH1mgBNqQJ0h34bdZ2kt8UZutjv4hsdBjLhWpBI2FT1P1SOfduZg5KZ5uRUO4oaTFAjnSEpxU9FqKh95NJX5kZshJzF4tKnMaRoDQvhIamFDXxxz2nO2vX5D5F+3tA7TKbkDgZa+08n7/nLTFH5EhzAeTjnsgJzFzVLfvz5kaS2fMkzfE2jpmz1OYsT3kse0e2m+CPwVKt2vJ59jFyBvbk6kwz4VY+TG60eo2yxs0zKPcg/QIBDQt1M9lcal+8hh7+Y3fP52xtpaFhljqLVPe0x70cI2LQzUjwK8rUp9C/4POwH5ihu/4fGvWlrHGsP0YH2JtR7TbJzG+CfPqUtpwAjg9zOwDevYDchX3Kz3+dvfWVrHWsP0YCM3XnczG3FWH/+RBowAfiUTW7GCHYE88fvlgK3GHGfkZqnnkr1Wtsur5BGaBCK2neRf4+wIejf5OmzMbP3qJs7Izbs9p3Y4q48P0YARqcedhrXsCuIGtUzD7/sCLf1hz6ldVrbsHzym9bLD0NJniD0QNzYds1SO6Tc3Pwi09M/HWLaVLhorIvn3mdkSHrdG3BTCVyyVM2CYHuwnpG92+A7bPKe+kSaMFhbyaYNs6MzV1rYZ//I9x2s+HGiuaxOvkTfrlYK1yJ/SH2talzg0LahoVj/S+zKzPX+t3VrqcCyzTNrUrSf1FHHjzgLjX75rpfwNscImDe/T0UIdRM/q5/gkKax36B1UgkW/7fsVPIPy1b2diNn7aCXeb27S8IuFOnweJmyAUF7M08bmK25cn4UeMkwPNnJzfQo1MluoQ+dOAQjjrcSNK0+kFGbB7umcxkf/LMcbUGq/QNy44faCgD80TA96ou5CCjXyS4U6cP4fnx1ASP+fuHHjNaelbzRMDzpyszKFGrmqUAfObXx2AKHcl6eNzduV8EeclXy38S9BH9uWRtwU64Lhl/Um/S2fIEBAH9Af5GlzO3NWvU8ZH+0c11jsiLuYQn0U7SnwL6cS2sV2XMsysiVX65/ZHWWWt97Nf3FUrvnXK8Evsa7QnJBB2bmcpJudQdzkyVnD9Hg3qxzVcuPf9tBIkGtfy8yWHGVnEDf5stVz6odilDhgvEhACj5yAxA3Ub4qgrjJrN/1nBr9rrcd2un79yM0EuTagYxsx5PsCuImf7xuZXNHxLK6W5zZPkwTQe5lo1/xP9kRxE3+eD8kIMoNbrp1rsUcjNwg/x6mlwXiJiqvp57/t9CldLYMm3AjN200J2TSfyVsQNxE5fWTzHtCljFYc9OZPzLOFWbkZkEKNUHEobUsnEz73+wG5NVyVZped4dYfnPNcqPq8iitooomQ23TTYZS7DjsWfZxmgICuMfQNpN7ATm2JUaTfrpmmUclbTIcIuOxI9B13GynISCQdMPmQXYA8m13U6MO8jOyGz16RKcNB0m4G+b0pxA3IzQDBDJO3waIY6KpWW/znb9XR+rmXtbim184N6QQN5tpBMh8/4a+DQrhsaamPWW47ehy7aub71j1L7dYGbkxH9Au4+Z/0AQQ0DB9G8D+QfQtra+ZY7Xub5qj9lY4I1ZGbtKJm2toAAjsXCphs5qKR3Es1PlQzf+ZhuWnrIzcmOPmjVbe5XOeZV/P7kdgPSmEzUGqHUUzFLDxP6/+gCERpVfi3QO51so7fIXTFIjtQU6kATZ8TPt9G773ybE11kZupB2eJfVbeXcczLDhRKJhwxNuUKOzQO/lS/qSpFv1a/qQrtTSao/je/o7PaTXDEutNUyPcre0lzynunvK53M0YIR0jc5Gur9gFIOaocKB19kbuTH90PMmZ72bHew+WOsp236NU9FAsEPPXmlbnW3nMLsPESxMIGweo5rRqL3k73+NYbrN59zYOKHgfbnB12jAiGBaix2v4UHdTjWDuKlnc+RG8r7N+s9Y+YDwwtgNojmrNp13VvqAfo8qBhrZHLmRvH90auPx03/iUS5PGkU8f+XkNNpyKhbwYvvXAks8ynrFwnbe71HuFnYfYtpkOWqep0oBb6bf3MR5HJWbX8cc8yh1ETsQFjxvLWw2UZmAieluaaMxyhzzKG9p7C19hZ94wpk7LETNbqoR8GMauVkTo8xFTm5S2FzmGLsPFg3GiJqdVB8Q/kPcRr/Bbm/JFGGL2X2wbE3dc275MSdg8eDyPoCmYpbb/Fz4Q9ZLPMfugyNDgULnrMYZPQSCMo3cxH8gs+3+0l82lTfE7oNTSzWkP9LBpov6/1xb1Ev1AOG4GLm5bHdTmQOZii8gWttbSIUAdj7E7X2U23icwbzbm0rbwM5DKkfJNVQIEJ6rkZvLxiw++YO+DbISN31UCKIr7z3TTHdLe8hK6RubpnwjYknNp+E45JGWNqoACM/dyM1ltzSVHO1EhP0LGYCo7a+fCgHif4zbP1E1ZqHsHZxIA3ED5JnbkZt5lxpKPx5y+d/kPmkgboB8c/ebm3ozDeVvD7Hs7Q5uhgMQN0CizjgeuTEHTtAezu9y+TOIG6BoB5HbkZHZprXc1HKZo03LLGOngbgB8uYuQ9icdrS+CY8ncZrjo/nygGktYaeBuAGK07c54myNqz3Xd79W1QTJMo16nuTbzA4DcQPk0WeMcfM5p+sdj/AkkR0WHs0GEDdACj7r8+F+0vna7wkRNY+xs0DcAHm0TCN6ucVH/LNa6Xw7lugeHfPZhkmN6f3sLhA3KJai3gPpPt2paV2SNKvrIpVwSJ2SpHZ165v6uJOt7Nd79Yu6qIqkDp3U43pJr9Aokam4qbVCh6kSoNaeGM9d934dolJB74beDejd+H8jo6YAejdIXTtVEMiLVAEAEDfufZwqAIA4Ogv5rq7SU3qDZudOBLRpgXapU22S2tSlES2oi9mKZrVSK+eG7Cua1YAuVE8itGuJ7tMemgoAAIAbXCoAaziZBgAgbgAAxA0AAMQNAIC4AQAQNwAAEDcAAOIGAADiBgBA3AAAiBsAAIgbAABxAwAgbgAAIG4AAMQNAADEDQCAuAEAEDcAABA3AADiBgAA4gYAQNwAAIgbAACIGwAAcQMAIG4AACBuAADEDQAAxA0AgLgBABA3AADY0lny93+DZlVRh07qNI0BAGDXHZrQc6o0vI5qOEQZ/aqoom1UJgqt/hjpp0KAoIY13RQz9a8XtChAOVuq8wPEDYA6u1oEzeuvzSFKAogbAFU7DcFySoc0qUM61TB9xqesEzXz7aBqQdwAuGzMM2j26aaG+QYaxnMWe5Z2qW6eIaoXxA0AaZVn1Gw3zn913Xyte0kAcQNABz2iZlpdLZY6Vp13tuEvjzWVBhA3QMl1e/ZrRgMte6A6/3jN1I0hekkAcQOUwnrPsBkMvPxUdZn5y6JXe5THyA2IG6DUHvcMmzB3UOipLnXc87DjVBqIG6D0vC967g5Zynh1ySslTRI3IG6IG6DWxdg9m8YDba9uC3l9G0DcAAU3G3PMpta6mh99Vhi5AXFD3ADztnvGwpilQ41TaSBuAEja7RkKx2OUuI24AXFD3AD1xh2Ewi0+YcPIDbLqO6qooh9nNG4+OlfWF9hRyKdBQygMWD3YGLlBnvoj5zMYN0/UlEbgIIcWGiLhWOySD3EqDbnyhcB3Nk8jbiY4ilCc73O2G/MXiRvkyvdDPEoj6biZ4Cgqt/YCvIddhuljFsruMEw/QNNBJn2l4d9dFno4dkxoHbsH+bbKaf/jEUPZw1Q8ctPXn7FWWvTezYTHdr2fnYW8H1zBHgAdr/TFVDwya8Zi4NiJG6+w2cSOQr4cdDy2kuTIzW/oOr2XXYpMBY6NuPEKG06sIWfeboyDCSvlrzGUvt/Be5m/i/VZdiucBM65lOLGK2zWs4OQN65/8T+S2MjNBa7WgfPAOaMliccNYYNC2GoMm8OW1jCVyMjNjVwcioQCp6KeROOGsEHh+zaDjtdg03F+i4BEA6c7xjEQLm4IGxTEZuen0nodj9z0GG4BCmQncKLHDWGDEvRt9jkONBsjN7frLPcrQA4CJ2rcEDYojHGfuNlgaR2TDkZulmtUZ3iODnITONHihrCBh7bc9m3cv6dKzPJ/WT/Rm7VOFzSrlXqLri34PkGWA6eraVpPoN/i1B8FKwJdhuN1u5oBSz9OABI26NM32GtpHX0xR25ubNGHqaiil+jdIOM9nPC9G3o2KJRpn49wW7fGGI85cnN9i6g5ql+QiBtkPHDCxg1hg0JZnMjIR9yRm+t9LmXYZDiYiRtkLXDCxQ1hg4IZTSRu4pZffzLtVR3TA/r9prAibpDtwAkTN4QNCscvbB6wtI4+C7+5uVE36J0R3guQncAJHjeEDQqn3zdubrW0lvGE7pZG3CDbgRM0bggbFNBoLkZuiBsUI3CCxQ1hg0LyC5tJ52tJ4t0A2QmcIHFD2KCEcTNuaR19iT3nhrhBtgOnddwQNiioId+46bO0lvHEnnND3CAt04ECp1XcEDYorJ2FGrkhbpC1MwXdoeKGsEGBTRVq5Ia4QZoWBwgcv7ghbFC672Pzr82W1pHcyA1xg3T1tAwcc9wQNii0pb5x02tpLWOJjdwQN0hbd4vAMcUNYYOCuzmRkZupxEZuiBtkPXC8L8YhbFB4W33C5jWnEeAqBogbZDVwujxa6DLCBmVxv0/cbLe0jjUJjtwQN8hy4DS30CskbSdsUAYnfOLG1sjKSIIjN8QNsh44jf/eStigHI74xM0KS+tIcuSGuEG2A2e24d8PEzYoi8M5eM4NcYNi9XD8X4QNiJuITNe+7SVuQOA0vdZRZQiusyDv45ilcj5lmP4DmgpKYEZtIb7wfFj/lypD+Xo3Iw57G0Ge0U7vBsURrGfzHioKRe7dtBn/8j3nQYdkfFLv0AVCNyUXdU7/qnt1f8s5/5feow9qiTp8jkq4/ew+pfvytcn5aion9DbDX1ZYCYQNhl/vHLZ23Vvz98i87xO7fqS38DkCBHalfpKfjW3PVdVOOO59rDVM30OrTsSfETZAKC/laWPzFTcLHZc/ZJj+EK06EZ+kCoCQcvQVLV9x80RKYXaENg0gk36WuHHD7QUBf2iYzmUCxdi/QBF9l7hx4zWnpW80TGfkJik/TxUAoXwgTxubt595Hqk+ccO2u41/YeQmOW16Uu/UeS6ETs0FvaqTereuaTHfN9ShK7UwZ19Yi3SkdOiUfkt/T1W4s8XZLWwqCd8tzbxWIF2fD/QzT6DgFjlq+keNB9UkcYNSeSTwHdOAgvNu+L2xyhz1OaTGiRuUyESoW3R2U2EoMu/TaffEKHHA94Dqc/puiBvkN2wIHJSyf/No5NI6Uj1hQNwgT2FzkcBBueyy+CHd6vkek47fC3GDLIfNzzb8exk9HNC/qUS6wU3rh0mNp/BOgGyEzdqmFtpuaLMEDgprs5Un3nQGODPd5/idEDfIatis82ihPyPT6WcCB6Xq34QzWLPkF1O71JO4QTbDZr1nC13uc1aAwEFBLfdo7ndH7B+NqiulkRviBtkOGxl6+wQOSmVLjA/qpxuuaduU0sgNcYNsh42MD1EncFAqu5sa+9EAS93o0SM6ndLIDXGDbIeNOW4IHJT+YNnmO3+vjjRc1mn+0E/mg5+4QZbDxi9uCByUzGNNjX3KcJfr5dpXN9+x6l9uSW3khrhBtsPGP24IHJTMsEdz/1bdYbNa9zfNsbXm7yOpjdwQN8h22LSKGwIHJbNQ50Pd5emZhuWnUhu5IW6Q7bBpHTcEDkpnKGDUPO9xwKR5e3XiBlkOmyBxQ+CghD6m/RFuSLMmxZEb4gbZDptgcUPgoKRu1WYd16s1sbFT92qpcf40R26IG2Q7bILGDYEDBJDmyA1xg2yHTfC4IXCASB/4yX3oEzfIctiEiRsCB/CV7sgNcYNsh024uCFwAB/pjtwQN8h22ISNGwIHMEp35Ia4QbbDJnzcEDhAiI/7JD/yiRtkOWyixA2BA3gwjdycJW5A2ESOGwIHaGIauRklbkDYxIgbAgdoYBq5WUPcgLCJFTcEDtDywz7ZD3ziBlkOmzhxQ+AAVaaRmyniBoSNhbghcIA5ppGbEeIGhI2VuCFwAElZGLkhbpDtsIkfNwQOoCyM3BA3yHbY2IgbU+D0sKNQFlkYuSFuYN+XLYaNnbgxBc5PsbNQDlkYuSFuYNtaq2FjK25MgQOUQhZGbvo4BGHZ162Gjb248Q4clEp7ad/5IsP0/Qluw7WeU99Ls0Rk/9Lw7wFNZGTLZhitQTlld+Smon9l98BSqxq03Eb7Y5bWU1fa19hZKIO0R2669MfGK+MqquizfBNERJ+otqJe61+J+mOXd4V+OFfWj9lVZdNW0vd9Ros9p99q8WTar2hIp3Sx5sCd1Xqd11v1xoAl/IO61aVd6qzZTx26Qtv1TZoufHxQbXrSUl+p1godtlDmm3S7HtdL7CaU74SDq6HLL/n2X+K8vsQORCpHSj8VgujKeanAXYbpr1hdy2ln23+ahguAuMmDccN0u2eTO5xtfwcNF0DedJbwPX/G+Je/sLqeq+b++6pO1sV6mzr0N/oXn9CoaFYDutBwcm9W1zWUDADIrM/6jImcpHqAhq8+jN0AoS3TiF5uMQj/rFZSUQBxA/uKeiH0fbpT07qk2lNQ4RyaO9HYrm59Ux+nqaCkcVPLzoXQQIHssX7p8SEqFfRu6N2A3o3/NzJqCqB3g9S1UwWBvEgVAABx4x5jNwAQSzF/d3OVntIbNDt3IqBNC6r3HWtTl0a0oC5mK5rVSq3URVXU/JuXdi3RfdpDUwEAAHCDSwVgDSfTAADEDQCAuAEAgLgBABA3AADiBgAA4gYAQNwAAEDcAACIGwBAUXWW/P3foFlV1KGTOk1jAADYdYcm9FzTI9SOajhEGf2qqKJtVCYKjXumARENa7rFcztf0KIA5Wypzg8QNwDq7Ar8qOjNIUoCiBsAVTsNwXJKhzSpQzrVMH3Gp6wTNfPtoGpB3AC4bMwzaPbppob5BhrGcxZ7lnapbp4hqhfEDQBplWfUbDfOf3XdfK17SQBxA0AHPaJmWl0tljpWnXe24S+PNZUGEDdAyXV79mtGAy17oDr/eM3UjSF6SQBxA5TCes+wGQy8/FR1mfnLold7lMfIDYgboNQe9wybMHdQ6KkuddzzsONUGogboPS8L3ruDlnKeHXJKyVNEjcgbogboNbF2D2bxgNtr24LeX0bQNwABTcbc8ym1rqaH31WGLkBcUPcAPO2e8bCmKVDjVNpIG4ASNrtGQrHY5S4jbgBcUPcAPXGHYTCLT5hw8gNsuo7qqiiH2c0bj46V9YX2FHIp0FDKAxYPdgYuUGe+iPnMxg3T9SURuAghxYaIuFY7JIPcSoNufKFwHc2TyNuJjiKUJzvc7Yb8xeJG+TK90M8SiPpuJngKCq39gK8h12G6WMWyu4wTD9A00EmfaXh310Wejh2TGgduwf5tspp/+MRQ9nDVDxy09efsVZa9N7NhMd2vZ+dhbwfXMEeAB2v9MVUPDJrxmLg2Ikbr7DZxI5Cvhx0PLbisvR3aoV6dYs+puXq1/XsTGQwcGzEjVfYcGINOfN2YxxMWCl/jaH0/THKXKJhPW3c7tf0jIbpO8FB4JxLKW68wmY9Owh54/oX/yOWR27GW9wWp/a1Q7eyg2E1cM5oSeJxQ9igELYaP6oPW1rDlLWRm2v17RBRY3sECgTO/Ksn0bghbFD4vs2g4zWEtStS1IR74DUQLHC6YxwD4eKGsEFBbHZ+Kq3XysjNkEcJe7VZN2q5+tSvXl2trfrvLSLnXnY4Ugmc6HFD2KAEfZt9jgMtzMhN412qt2lNxAg9wS5HCoETNW4IGxSG36D7BkvrmIw9cnMxwnN31vm8s252PBIOnGhxQ9igFH2bivN1RDnID4Ra89PchxoZCZwocUPYoEAGfcJmr6V19MUcuant2fxe6LXfReAgE4ETPm4IGxTKtE/c2Lo1xniskZvaMZsbI63/dk6pIQOBEzZuCBsUyuJETqXFGblZXTP/1ZG34C4efoDUAydc3BA2KJjRzI/cvD737bG2wTSG81c0AiQUOGHihrBB4fiFzQOW1hFn5GasOve3nb3Xm2kGSCRwgscNYYPC6feNG1v3GYszcmOzp7WRE2pINXCCxg1hgwIazfjIzes/1fyc074cV6ghicAJFjeEDQrJL2wmna8lzJJvsrIldxu25BxNAQkETpC4IWxQwrgZt7SO6CM3K5qW+RNn73gpjQHOA6d13BA2KKgh37jps7SW6CM33ksuibU1zxm2ZiPNATFMBwqcVnFD2KCwdmZ85Oaogy0z3bjzCM0B1vvN3aHihrBBgU3lZuSm/vVEjK1ZztVpcGJxgMDxixvCBqX7Pmb7yZdxfnPjpudF3MCNnpaBY44bwgaFttQ3bnotrWXMym9uGl//zkHcXEeTQEzdLQLHFDeEDQru5kRGbqZi3C3NvHXviLFFPzCU+TaaBBwHjvfFOIQNCm+rz8f5a9bWYuduaTZ7N6ZLF/6UJgFngdPl0aKXETaIrj1XWzvt87evWlqH6eHOBwItfdH4l5cd1AejN7BhRj2eU5udlrRd65qmD2iCakSxnPDpPQxbWsdIrPI/alh6a6xt+kdDqatoEnDaw1HTv7fSs0E5HPGJmxWW1hFn5Kb55IOdcSXX7xnwDpzZhn8/TNigLA5n/Dk33iWcjzVuY2ebgKg9HP8XYQPiJiLTtW97Q5Xy0ZpvhfGH81cQN8ho4KyjylC+uDlqaQ2mm+Q8GKGsn7a0TaZn3hymQcCB4GHz61QWyhg3I44Ptf4U3/U+wzZtoUEgxcDhR8YIqS1XW3vEeOeADdpp6UDLXj2ZtmmJpgrYIj+v2/QWXeJUYSouaVov6aI+0HLO7+hHequWqINKS0W7uvSkfjtfG92Zq61dYPzLd62Uv8HYq0rPGuNfihg2hExevJcqSN2n9Wm9Sz/IU0bmifmnZHYCYa1h+p4U3/NvGaYPFPDw+aoAhPH3edrYfJ1M26rfcfo+TN+t+1N8tkylEHuOvg3gxk/rR/RuXHjCaekLjX9JL2xGDdM3cZQByNeXtHx9R16qVx2+j1HD45gPp/jrfe+mdM4nGvPse3o3nx5AUT/D89W7ec1p6RsN09MbuTH1bd5V0APnPXx2AKH8ap42tjNnlXuk+sQN2+42/uWh1N6tdwCOp3hyz/03tT/TWp3XJT5HUnJBr+qk3q1rWsz3DXXoSi3M2RfWIh0pC/R9/Wf9hKpwZ4uz27lUMnermKOeWzNLI4Bjnw/0M0+g4BY5avpHjQfVZErvdJiDHKl4xKPVfZK2iDLy/hDujVXmqM93uPFMvc8eGgCc8npS54eMLbKbCkOReZ9OuydGiQO+pwz6UnmXM57bcg27H4mHzfwjBroJHNC/qaiiRyOX1pHBM9QTnlsyyK5HamFD4KCUdlmMhVbP90hj5Ga955ZsYMcj1bAhcED/Zu4V5YePrR8mlfzIjXdvi/vuIv2wIXBQQputPPGmM8DFnkmP3CzhAgFkOGwIHNC/iXA6bbBmyS9mZuTmTNMWnGVnI0NhQ+CgdJZ7NPe7I/aPRtWVkZGbc01b8Dy7GhkLGwIHpbMlRl/k6YZr2jZlYuSm+eLn3exmZDBsCByUzu6mxn40wFI3evSITmdg5GYm0kEPpBE2BA44WLTNd/5eHambe9nc9PRHbprDZgG7FxkOGwIHpfNYU2OfMtzlern21c13rPqXW1IfuWkMm+PsWGQ+bAgclI7XrSy/VXfYrNb9TXNsrfn7SMojN41hM8ZORS7ChsBB6SzU+UA3TJ9/PdOw/FSqIzcz3KoGuQ0bAgclNBQwap5Xf9OyaY7czPCDTuQ6bAgclNLHtD/CDWnWpDhyM8NvbJD7sCFwUFq3arOO69Wa2Nipe7XUOH96IzczjNigEGFD4ACBpDVyUx82A+wI5DhsCBwggHRGbs7WrauT3YCchw2BA7SQxsjNoti34Kzoh3pBF/ROdiAyEzYEDuAr+ZGbbguXB8wvfRU7EBkKGwIH8JH0yE23hVtwXpvqg61B2BA4QIx+QjIjN/UH4m9GLGWYuEFmw4bAATyZRm7OJnAQDkUuZ3uI+18DSYcNgQN4MI3cjDo/ALtilPRa5Mdlg7BJ6tEWBA5QxzRys8bpwTcVs6z5cjawA5HRsCFwAMMHt+uRm9oD72LMsm6ulnQdOxCZDRsCB6hhGrmZcnjQ7Yxd2nYuFEAuwobAAapMIzcjzg64zVZ7ZEC2w4bAAeYkMXJTe7D9moXy/lO1NK5LQ/bDhsABGvoJrkZuumtGbK63UN67nPXBQNgkHTg826l0yntzSFMf5qzFg+xc9f+P6gG9VUvUESkWZz3C6lkaLzx9WR9umjagiRS3aEY9NcfCvGldodPsLpSB65Gb7lAPtA7/4ro0eFmbsZ6N//EAlILbkRvXYcOBCm9fz2TYmI4JoBRcfoy7DxsOVHh7OKNh431cACXg8jc3SYQN16UhyBepwYxtW0/d1n2NnYUycDdy05NA2HBdGsw+UW0lvRncuiv0w7mt+zG7CuVwxtHIzRsSCRvulwZ/H7TyKy9X3qRP6Up2Uvm0lfaEg5v6SOps9PU6ROMFkCftpXzXdxmmv5Kbd0DYAKB3k+O+zdHYD42usN8AgN7NZZ8x/uUvcvIOLtFwASDrPuszAH+S6gEAxLVMI3q5xRVfz2olFQUA9hV1DOA+3alpXZI0G/HuYofmbl/arm59Ux+nqQAAGu2x/jsXrgQDAHo3TSrUFABkSztVEMiLVAEAEDfuMXYDALEU82meV+kpvUGzcyfV2rRAu9SpNklt6tKIFtTFbEWzWqmVuqjK3L8GdKF6Qq5dS3Sf9tBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2/BvugADjJ+At0wAAAC10RVh0aWNjOmNvcHlyaWdodABDb3B5cmlnaHQgQXJ0aWZleCBTb2Z0d2FyZSAyMDExCLrFtAAAADF0RVh0aWNjOmRlc2NyaXB0aW9uAEFydGlmZXggU29mdHdhcmUgc1JHQiBJQ0MgUHJvZmlsZRMMAYYAAAATdEVYdHBkZjpWZXJzaW9uAFBERi0xLjVTNlrBAAAAAElFTkSuQmCC
Multi-controlled gate
from qat.lang import qrout, SWAP

@qrout
def multi_ctrl_circ():
    SWAP.ctrl(2)(0, 1, 2, 3)
from qat.lang import qrout, SWAP

@qrout
def reversed_circ():
    SWAP.dag()(0, 1)
data:image/png;base64,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

This \(SWAP\) gate is defined by:

\[\begin{split}\begin{vmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ \end{vmatrix}\end{split}\]