mx-psi/libreim-quantum
{ "createdAt": "2019-04-26T11:39:27Z", "defaultBranch": "master", "description": "Repositorio para la charla sobre Quipper y computación cuántica en libreim", "fullName": "mx-psi/libreim-quantum", "homepage": null, "language": "Haskell", "name": "libreim-quantum", "pushedAt": "2019-04-26T22:19:29Z", "stargazersCount": 8, "topics": [], "updatedAt": "2019-04-28T10:45:48Z", "url": "https://github.com/mx-psi/libreim-quantum"}Instalación
Section titled “Instalación”Hace falta instalar stack, disponible en https://docs.haskellstack.org/en/stable/README/
Una vez hecho esto puede ejecutarse stack build para instalar y compilar.
Windows: En Windows hay que modificar stack.yaml y reemplazar convert_template.sh por convert_template.bat.
Ejecución
Section titled “Ejecución”Para ejecutar un programa el comando a ejecutar es stack exec <nombre>.
diagrams
Section titled “diagrams”Si es llamado sin argumentos produce diagramas en pdf de los circuitos especificados.
deutsch
Section titled “deutsch”El binario generado tiene dos modos de ejecución
- Si se llama sin argumentos lee de la entrada estándar una tabla de verdad formateada como un fichero csv a dos columnas sin comillas que define una función f:{0,1}ⁿ → {0,1} a la que aplicar el algoritmo de Deutsch-Jozsa.
- Si se llama con un argumento
input.csvlee la tabla de verdad del ficheroinput.csv.
Se incluyen dos ejemplos en la carpeta oracles. El programa comprueba
que la tabla de verdad esté bien formateada pero no comprueba que la
función sea balanceada (esto es, que la mitad de las imágenes sean 0 y
la otra mitad 1) o constante, en cuyo caso el algoritmo de Deutsch-Jozsa
tiene un comportamiento indeterminado.
Código
Section titled “Código”El código se organiza en las carpetas deutsch, diagrams y src, el resto de ficheros son necesarios para la compilación. En concreto
- El código del algoritmo de Deutsch-Jozsa está disponible en el
fichero
deutsch/Deutsch.hsy - El código de generación de oráculos a partir de su tabla de verdad
está disponible en el fichero
src/Oracle.hs.