Skip to content

A C project for polynomial manipulation. It offers features like arithmetic operations, graphing, and CRC calculation. It's built with CMake and Docker.

License

Notifications You must be signed in to change notification settings

lyes-mersel/polynomial-master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polynomial Master

A C project for manipulating polynomials using linked lists

Introduction

This project, initially developed for a university assignment, empowers you to explore linked lists and their application to complex polynomial operations. It has since been significantly enhanced to provide a robust development environment:

  • Streamlined Workflow: CMake integration ensures seamless cross-platform compatibility for building the project.
  • Enhanced Code Structure: Refactored code promotes readability, maintainability, and modularity.
  • Dockerized Deployment: The included Dockerfile simplifies deployment by packaging the project into a container.

Features

  • Polynomial Arithmetic: Perform essential operations like addition, subtraction, multiplication, division, evaluation, differentiation, and integration on polynomials.
  • Efficient Representation: Leverage linked lists to represent polynomials effectively, optimizing memory management.
  • Visualized Insights: Generate graphs of polynomials using the SDL2 library, providing a clear understanding of their behavior.
  • CRC Calculation (Optional): Implement CRC (Cyclic Redundancy Check) to detect errors in data transmission (documentation required).

Getting Started

Prerequisites:

For a traditional build, ensure you have CMake, SDL2, SDL2_image, and SDL2_ttf libraries installed on your system. Refer to your system's package manager for installation instructions.

Alternatively:

For a more convenient setup, leverage the provided Dockerfile to run the project in a container. This approach eliminates the need for specific library installations.

Building and Running (Traditional Method):

  1. Clone the repository:
     git clone https://github.com/lyes-mersel/polynomial-master.git
  2. Build the project:
    cd polynomial-master && mkdir build && cd build
    cmake ..
    make
  3. Run the application:
    ./polynomial-master

Using Docker (Simplified Method):

  1. Clone the repository:
    git clone https://github.com/lyes-mersel/polynomial-master.git
  2. Build the image:
    cd polynomial-master
    docker build -t polynomial-master .
  3. Run the container: Unix-based system (Debian, Ubuntu, Mint, macOS, ...):
    docker run --rm -it --device /dev/dri -e DISPLAY=:0 --volume /tmp/.X11-unix:/tmp/.X11-unix polynomial-master
    Windows (requires Xming server):
    docker run --rm -it -e DISPLAY=:0 --volume /tmp/.X11-unix:/tmp/.X11-unix polynomial-master

Note: For Windows users running the container, installing and launching the Xming server is a prerequisite.

Project Components

  • C Programming Language: Forms the foundation for the project's functionalities.
  • CMake: Streamlines the build process across different platforms.
  • SDL2, SDL2_image, SDL2_ttf: Libraries utilized for graphics and user interface elements.

Screenshots

Contributing

We welcome contributions to Edutainment! If you'd like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Commit your changes.
  5. Push to the branch.
  6. Create a pull request.

License

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

Developer Information

Made with ❤️ for Efficient Polynomial Manipulation

About

A C project for polynomial manipulation. It offers features like arithmetic operations, graphing, and CRC calculation. It's built with CMake and Docker.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages