Skip to content

inner-byte/strassen_algorithm_gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Strassen's Algorithm GUI

This project provides a graphical user interface (GUI) for performing matrix multiplication using Strassen's Algorithm. It is built using PyQt6 and includes features such as input validation, error handling, process display, and analytics.

 Features

- Matrix Input: Enter matrices A and B for multiplication.
- Matrix Multiplication: Perform matrix multiplication using Strassen's Algorithm.
- Process Display: View the detailed steps of the calculation.
- Analytics: Compare the time complexity between conventional and Strassen's algorithms.

Getting Started

Prerequisites

- Python 3.x
- PyQt6
- NumPy
- Pandas
- Matplotlib

 Installation

1. Clone the repository:
   ```sh
   git clone https://github.com/inner-byte/strassen_algorithm_gui.git
   cd strassen_algorithm_gui
  1. Install the required libraries:
    pip install -r requirements.txt

Running the Application

  1. Run the application:

    python main.py
  2. Enter Matrices:

    • Matrix A
    • Matrix B
  3. Multiply Matrices:

    • Click the "Multiply" button to perform the multiplication.
  4. Show Process:

    • Click the "Show Process" button to view the detailed steps of the calculation.
  5. Show Analytics:

    • Click the "Show Analytics" button to view the time complexity comparison between conventional and Strassen's algorithms.

Project Structure

strassen_algorithm_gui/
│
├── README.md
├── requirements.txt
├── user_manual.txt
├── main.py
├── data_processing.py
├── visualization.py
├── gui_elements.py
├── settings.py
├── src/
│   ├── sample_data.txt
│   └── strassen_ui.py
└── screenshot/
    └── interface.png
  • README.md: This file, containing an overview of the project.
  • requirements.txt: Lists the Python dependencies required by the project.
  • user_manual.txt: Contains user documentation or instructions for using the project.
  • main.py: The primary entry point for the project, responsible for initializing and coordinating the application.
  • data_processing.py: Handles data processing tasks, such as data cleaning and transformation.
  • visualization.py: Contains functions for creating various types of visualizations using Matplotlib.
  • gui_elements.py: Contains custom widgets and components for the GUI, built using PyQt6.
  • settings.py: Configuration file that contains project-specific settings, such as file paths, API keys, and other custom configurations.
  • src/: Directory containing source code and data files.
    • sample_data.txt: Contains sample data used by the project.
    • strassen_ui.py: Responsible for the user interface or a specific functionality within the project.
  • screenshot/: Directory containing an image file, a screenshot of the project's interface and visual representation of the project's output.

Example Matrices

Here are example matrices A and B used for multiplication:

Matrix A:

[[1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12],
 [13, 14, 15, 16]]

Matrix B:

[[16, 15, 14, 13],
 [12, 11, 10, 9],
 [8, 7, 6, 5],
 [4, 3, 2, 1]]

License

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

Contributing

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

Contact

For any questions or suggestions, please contact aliyuahmad@gmail.com.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages