An open API service indexing awesome lists of open source software.

https://github.com/mrgilli/quplexity

Very fast and lightweight modular library for Quantum Computer simulators.
https://github.com/mrgilli/quplexity

library qiskit qrack quantum-computing quantum-library quantum-programming quantum-simulator qubits simulation

Last synced: 16 days ago
JSON representation

Very fast and lightweight modular library for Quantum Computer simulators.

Awesome Lists containing this project

README

        

[![Mentioned in Awesome - awesome-quantum-software](https://awesome.re/mentioned-badge.svg)](https://github.com/qosf/awesome-quantum-software)
![OS](https://img.shields.io/badge/os-MacOS-9cbd3c.svg)
![OS](https://img.shields.io/badge/os-Linux-9cbd3c.svg)
![OS](https://img.shields.io/badge/os-Windows-9cbd3c.svg)

# Quplexity

Quplexity is a blazingly fast and lightweight (modular) library that provides Quantum Computer simulators with their mathematical and essential quantum logic gates or functions. Quplexity is written in x86 and ARM64(Aarch64) Assembly for fast execution and computational times. The library can significantly enhance the speed of Quantum Computer simulators, as a result of this, more complex algorithms and sequences can be simulated in an efficient yet accurate manner. Quplexity has exstensive and carefully crafted documentation, to help anyone no matter what their technological fluency is, to integrate Quplexity into their project or contribute to the project itself.

## ๐Ÿ“Œ Features
- **Optimized for Performance**: Written in low-level Assembly for maximum efficiency.
- **Support of Multiple Architectures**: Supports both x86 and ARM64 architectures.
- **Modular Design**: Easily extendable for different quantum algorithms and simulators/programs.
- **Comprehensive Documentation**: Includes manuals and examples for ease of use.

## ๐Ÿ“ฅ Installation
#### Please check [Quplexity's pdf manual](https://github.com/MrGilli/Quplexity/blob/main/quplexity_manual.pdf) to learn how to use all Quplexity functions in your C/C++ project.

### ๐Ÿ”น Prerequisites
Ensure the following dependencies are installed **before** building or running Quplexity:
- **nasm** โ†’ for Intel and x86 Assembly.
- **as** โ†’ for ARM/ARM64 Assembly.
- **gcc & g++** โ†’ for compiling C/C++ code.
- **git** (optional) โ†’ to download Quplexity via CLI.

### ๐Ÿ”น Compilation and Linking

###### Compile Assembly Code:
```bash
nasm -f elf64 assembly_file.asm -o assembly_object_file.o
```
###### Link with your C/C++ file:
```bash
gcc -no-pie c_file.c assembly_object_file.o -o test
```
###### Run:
```bash
./test
```

## ๐Ÿš€ Projects Using Quplexity
To add your project, email me or submit a pull request.
* [Qrack](https://github.com/unitaryfund/qrack) - Fast Quantum Computer Simulator/Emulator.
* [LLY-DML](https://github.com/LILY-QML/LLY-DML) - Quantum Machine Learning model.
* [theQ & Quantum Quokka](https://github.com/devitt1/theQ) - Quantum Computing simulation project, By Dr. S.J. Devitt and Prof. C. Ferrie at QSI@UTS

## ๐Ÿงช Quplexity Algorithm Examples:
Quplexity includes several examples and test cases to validate its implementation.. All examples are located in the ./Examples folder.
The directory ./Examples/x86 holds all the examples that will run on machines using the x86 architecture. Conversely, the directory ./Examples/ARM64 holds all the examples that will run on machines using the ARM64/Aarch64 architecture.

### Running the Grovers-Search Algorithm for x86:
In the root directory of the Quplexity project, run the following commands
```bash
nasm -f elf64 ./x86/gates.asm -o ./x86/gates.o
gcc -no-pie ./Examples/x86/Grovers-Search_algorithm.c ./x86/gates.o -o grovers_search_test
./grovers_search_test
```
The output should indicate whether the state |1> or |0> is most likely.

## ๐Ÿ”ง Contributing
We are excited to welcome contributors from all backgrounds! Whether you're fixing bugs, optimizing performance, or adding new quantum operations.

## โœ๏ธ Author(s)
* Jacob Gill - Founder & Lead developer - Contact: Email = [email protected], Discord = @bixel0
* Gabriella Xenia Talarico - Lead developer - Contact: Discord = @gabriellaxenia19