{ "info": { "author": "Daniel Kn\u00fcttel", "author_email": "daniel.knuettel@daknuett.eu", "bugtrack_url": null, "classifiers": [], "description": "PyQCS -- A quantum computing simulator\n**************************************\n\n.. contents::\n\nLinks\n=====\n\n- `the github repository `_\n- `the pypi repository `_\n- `some examples on github `_\n\nBasic Design Layout\n===================\n\nPyQCS has two fundamental classes for simulating the quantum computation:\nA state which represents the total simulator state at a single point in \nquasi-time [1]_ and gate circuits that can be applied to such a state;\nyielding a new state.\n\nPyQCS states\n------------\n\nA PyQCS state contains a representation of the quantum mechanical state in which\nthe simulator is; using a numpy array. The application of a gate will return a new state with \na changed qm state. \n\nThe state also contains a representation of the last measurement and information which qbits \nhave been measured. This information will be used by classical parts of an algorithm.\n\nPyQCS gates\n-----------\n\nA PyQCS gate is essentially a function mapping a ``2**N`` dimensional ``cdouble`` array and an\n``N`` dimensional ``double`` array to a ``2**N`` dimensional ``cdouble`` array,\nan ``N`` dimensional ``double`` array and a ``int64`` scalar.\n\nPyQCS gates usually are implemented as objects with a numpy ufunc backend and some data. \n\nA normal user will never access the gates directly but use either `PyQCS gate circuits`_ or\n`PyQCS gate circuit builders`_\n\nPyQCS gate circuits\n-------------------\n\nCircuits are way one describes how the gates are applied to the state. Even single gate applications are\ndescribed as circuits as those are more convenient to use. Gate circuits can also be used to optimize\ncircuits in an abstract way and implement the error simulation.\n\nPyQCS gate circuit builders\n---------------------------\n\nGate circuit builders are a more abstract way to construct gate circuits and are used typically to reduce\nthe effort to construct a circuit. When called a circuit builder returns a new circuit with the\ngiven parameters. Typical cases are circuits that can be applied to different qbits.\n \n\nBuilt-in Gates\n==============\n\nPyQCS currently has the following gates built-in:\n\n``X``\n\tPauli-X or NOT gate. Flips the respective qbit.\n``H``\n\tHadamard gate. \n``C``\n\tCNOT (controlled NOT) gate. Flips the act-qbit, if the control-qbit is set.\n``R``\n\tR, Rz or R_phi, the rotation gate. Rotates the respective qbit around a given angle.\n``M``\n\tMeasurement gate: this gate measures the respective gate, collapsing the wave function\n\tand storing the result in the classical part of the state.\n\n\nTODOs\n=====\n\n- Add a subclass of ``pyqcs.state.state.BasicState`` that has an improved ``__str__`` method.\n- Write lot's of documentation.\n- Add more tests.\n- Add a ``NoisyGateListExecutor`` that allows to implement a noise model.\n\n\n\n\n.. [1] Real quantum computers have an intrinsic time evolution. This is omitted\n in PyQCS and reintroduced for error simulation. PyQCS therefore operates\n on a discrete quasi-time with every time-site being before or after a gate\n application.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyqcs", "package_url": "https://pypi.org/project/pyqcs/", "platform": "", "project_url": "https://pypi.org/project/pyqcs/", "project_urls": null, "release_url": "https://pypi.org/project/pyqcs/0.0.8/", "requires_dist": null, "requires_python": "", "summary": "A quantum computing simulator.", "version": "0.0.8" }, "last_serial": 5984223, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "dba6bdffd63d662e3674a6049c9eb541", "sha256": "142df971c3baef1d6c4c6ecad62039940ce50b99771ffaa8c7b4b903e67d5447" }, "downloads": -1, "filename": "pyqcs-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dba6bdffd63d662e3674a6049c9eb541", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 283222, "upload_time": "2019-09-10T18:28:46", "url": "https://files.pythonhosted.org/packages/7b/be/60ae926ae7d4503450a92a97cbe85a6970e5e7b734966df461d86b789eda/pyqcs-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8d7c02fac4419f9478eab8448f939237", "sha256": "79e8b25e8b5fc48a9e2549a325952392d931df30047b162e651a2e684c592c89" }, "downloads": -1, "filename": "pyqcs-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8d7c02fac4419f9478eab8448f939237", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 283285, "upload_time": "2019-09-10T18:36:09", "url": "https://files.pythonhosted.org/packages/a7/12/b2d34d28650c9c3a3c41ce769a6dbcd67500ba93ff17db15a511b7b3bbff/pyqcs-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "6f61ec760311582b083ea09550a26ea2", "sha256": "e2778ad440447faf12f79acd3403d090efbd56837d7722ea49f33dc35f21b0f5" }, "downloads": -1, "filename": "pyqcs-0.0.3.tar.gz", "has_sig": false, "md5_digest": "6f61ec760311582b083ea09550a26ea2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 283697, "upload_time": "2019-09-10T18:58:05", "url": "https://files.pythonhosted.org/packages/47/37/2df0d5b05850954e8dde9a73d85ae94ec65b3e845c40ec51f28ef94553e2/pyqcs-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "2428b851c0fc494c8226d094beffdd93", "sha256": "112af598b015d7acc55465ca978c6609e7ea21af3c5f5742fe94b0120ec2df17" }, "downloads": -1, "filename": "pyqcs-0.0.4.tar.gz", "has_sig": false, "md5_digest": "2428b851c0fc494c8226d094beffdd93", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 284389, "upload_time": "2019-09-11T09:54:59", "url": "https://files.pythonhosted.org/packages/ae/76/907509b049ee0299993e7a4645c4bf5ab7f37552152bc07ba0fb33d9f663/pyqcs-0.0.4.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "e78286b32a0cb6a2826f0f9f561430e0", "sha256": "579ebf7c1c04d074e798f876c006dac3e4caa40a15a0e0c27b086c82352448fb" }, "downloads": -1, "filename": "pyqcs-0.0.6.tar.gz", "has_sig": false, "md5_digest": "e78286b32a0cb6a2826f0f9f561430e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 285216, "upload_time": "2019-10-15T16:43:26", "url": "https://files.pythonhosted.org/packages/7d/91/f02fbc14bf1c430783d681d714e0c257418fd39300c379c6b5d9dbf630f2/pyqcs-0.0.6.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "1a7f58ed6822f6529c0abcb18db5ca3e", "sha256": "a9c4c9ea940437dab7f720ef3abbff52b21868f4a3c327b6cd87adc7a5ebb2c8" }, "downloads": -1, "filename": "pyqcs-0.0.8.tar.gz", "has_sig": false, "md5_digest": "1a7f58ed6822f6529c0abcb18db5ca3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 285664, "upload_time": "2019-10-16T15:29:37", "url": "https://files.pythonhosted.org/packages/23/23/669160a20dc538562c897d9781bea9d80beaa38ec99f5eba7a78dc02a1ee/pyqcs-0.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1a7f58ed6822f6529c0abcb18db5ca3e", "sha256": "a9c4c9ea940437dab7f720ef3abbff52b21868f4a3c327b6cd87adc7a5ebb2c8" }, "downloads": -1, "filename": "pyqcs-0.0.8.tar.gz", "has_sig": false, "md5_digest": "1a7f58ed6822f6529c0abcb18db5ca3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 285664, "upload_time": "2019-10-16T15:29:37", "url": "https://files.pythonhosted.org/packages/23/23/669160a20dc538562c897d9781bea9d80beaa38ec99f5eba7a78dc02a1ee/pyqcs-0.0.8.tar.gz" } ] }