logosq 0.1.1

This project is a quantum computing library developed in Rust, inspired by existing libraries such as QPP in C++, Yao.jl in Julia, and Pennylane in Python.
Documentation
<!-- # Quantum Computing Library in Rust -->

<div align="center">
  <h1>
    <img src="docs/Logo.jpg" alt="LogosQ Logo" width="80" height="80" style="vertical-align: middle;">
    LogosQ: Quantum Computing Library in Rust
  </h1>
</div>

## Overview
This project is a quantum computing library developed in Rust, inspired by existing libraries such as QPP in C++, Yao.jl in Julia, and Pennylane in Python. The library aims to provide a comprehensive set of tools for quantum computing, including quantum gates, circuits, states, algorithms, and noise simulation.

λόγος (lógos) comes from Greek means the logic.

## Project Structure
The project is organized into several modules, each responsible for a specific aspect of quantum computing:

- **src/lib.rs**: Main library entry point, defining the public API.
- **src/gates**: Handles quantum gates and their operations.
- **src/circuits**: Defines quantum circuits and their manipulation.
- **src/states**: Manages quantum states and their representation.
- **src/algorithms**: Implements various quantum algorithms.
- **src/noise**: Simulates noise in quantum systems.
- **src/utils**: Contains utility functions and types.

## Installation
To build and run the project, ensure you have Rust installed on your machine. You can install Rust using [rustup](https://rustup.rs/).


Add LogosQ to your project by adding the following to your `Cargo.toml`:

```toml
[dependencies]
logosq = "0.1.1"
```
or clone the repository and navigate to the project directory:

```bash
git clone https://github.com/zazabap/logosq.git
cd logosq
cargo build
```

## Usage
To use the library, you can include it in your Rust project by adding it as a dependency in your `Cargo.toml` file. Here’s an example of how to create and manipulate basic quantum gates

The `examples` directory contains several example files demonstrating how to use the library:

- **basic_gates.rs**: Example of creating and manipulating basic quantum gates.
- **quantum_teleportation.rs**: Implementation of the quantum teleportation algorithm.
- **grover_algorithm.rs**: Showcase of Grover's search algorithm.

## Development Roadmap
Completed
- ✅ Core data structures for quantum gates, states, and circuits
- ✅ Implementation of basic quantum gates and their operations
- ✅ Quantum state representation and manipulation
- ✅ Circuit model for combining gates and executing on states
- ✅ Circuit visualization tools (text and SVG)
In Progress
- 🚧 Intermediate Representation (IR) for circuit optimization
- 🚧 State visualization tools
- 🚧 More quantum algorithms implementations
- 🚧 Comprehensive testing suite
Planned
- 📅 Noise models and error simulation
- 📅 Hardware backend interfaces
- 📅 Advanced optimization techniques
- 📅 Quantum machine learning modules
- 📅 Distributed simulation capabilities
- 📅 Integration with other quantum frameworks

## Contributing
Contributions are welcome! Please open an issue or submit a pull request for any enhancements or bug fixes.

## License
This project is licensed under the MIT License. See the LICENSE file for more details.