Metadata-Version: 2.2
Name: IrcoPy
Version: 1.0.0
Summary: A high-performance physics calculation library for Physics.
Author-Email: NicoAdresse <nicobsc4@yahoo.com>
License: MIT
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# Physics Calculator <->

Created by: NicoLuaJIT/NicoAdresse (Nico Erdmann) on 12.07.2026 (Sunday)

# About <->

This is a hobby project intended to help me practice working with larger codebases and improve my Git workflow.

Take everything here with a grain of salt.

**Current Version:** `v1.0.8-experimental-O2`

This codebase is a high-school physics calculator covering topics ranging from Electricity to Waves.
It is designed to demonstrate fundamental principles across multiple fields of physics, including Mechanics, Energy, Gravity, Rotational Dynamics, and Waves.

# Code Quality <->

Every class is wrapped inside the namespace of its respective domain.

Every calculation function returns a value, usually `double` (Python: `float`), since `result` is represented using that type.

# How To Get Started <->

These instructions will get a copy of the project running on your local machine for development and testing purposes.

## Prerequisites

### Python

- Python Interpreter (recommended version >= 3.9)
- The `pip` package manager

### C++

- G++, Clang, or another C++ compiler (recommended version >= C++23)
- CMake

### Installation & Setup

1. Clone the repository:

```bash
git clone https://github.com/NicoAdresse/Physics-Calculator.git
```

2. Build the project:

```bash
rm -rf build/
mkdir build && cd build
cmake ..
cmake --build .
./app
```

# Structure <->

```text
Physics-Calculator/
├── build/
│   └── app
├── CMakeLists.txt
├── LICENSE
├── README.md
├── CODE_OF_CONDUCT.md
├── UPDATE_PIP.sh
├── RUN.sh
├── CONTRIBUTING.md
├── TODO.md
├── pyproject.toml
├── bindings/
│   ├── bind_main_module.cpp
│   ├── Electricity/
│   │   ├── bind_charge.cpp
│   │   ├── bind_coulombs_law.cpp
│   │   ├── bind_ohms_law.cpp
│   │   └── bind_power.cpp
│   ├── Energy/
│   │   ├── bind_efficiency.cpp
│   │   ├── bind_heat_energy.cpp
│   │   ├── bind_kinetic_energy.cpp
│   │   └── bind_potential_energy.cpp
│   ├── Gravity/
│   │   ├── bind_escape_velocity.cpp
│   │   ├── bind_gravitational_acceleration.cpp
│   │   ├── bind_gravitational_force.cpp
│   │   ├── bind_kelpers_third_law.cpp
│   │   ├── bind_orbital_velocity.cpp
│   │   ├── bind_gravitational_potential_energy.cpp
│   │   └── bind_gravitational_force.cpp
│   ├── Mechanics/
│   │   ├── bind_acceleration.cpp
│   │   ├── bind_average_velocity.cpp
│   │   ├── bind_density.cpp
│   │   ├── bind_force.cpp
│   │   ├── bind_hookes_law.cpp
│   │   ├── bind_momentum.cpp
│   │   ├── bind_power.cpp
│   │   ├── bind_pressure.cpp
│   │   ├── bind_torque.cpp
│   │   ├── bind_weight.cpp
│   │   └── bind_work.cpp
│   ├── Rotational_Dynamics/
│   │   ├── bind_angular_acceleration.cpp
│   │   ├── bind_angular_velocity.cpp
│   │   └── bind_rotational_energy.cpp
│   └── Waves/
│       ├── bind_frequency.cpp
│       ├── bind_period.cpp
│       └── bind_wave_speed.cpp
├── impl/
│   ├── Electricity/
│   │   ├── impl_charge.cpp
│   │   ├── impl_coulombs_law.cpp
│   │   ├── impl_ohms_law.cpp
│   │   └── impl_power.cpp
│   ├── Energy/
│   │   ├── impl_efficiency.cpp
│   │   ├── impl_heat_energy.cpp
│   │   ├── impl_kinetic_energy.cpp
│   │   └── impl_potential_energy.cpp
│   ├── Gravity/
│   │   ├── impl_escape_velocity.cpp
│   │   ├── impl_gravitational_acceleration.cpp
│   │   ├── impl_gravitational_force.cpp
│   │   ├── impl_kelpers_third_law.cpp
│   │   ├── impl_orbital_velocity.cpp
│   │   ├── impl_gravitational_potential_energy.cpp
│   │   └── impl_gravitational_force.cpp
│   ├── Helper/
│   │   └── helper_funcs.hpp
│   ├── Mechanics/
│   │   ├── impl_acceleration.cpp
│   │   ├── impl_average_velocity.cpp
│   │   ├── impl_density.cpp
│   │   ├── impl_force.cpp
│   │   ├── impl_hookes_law.cpp
│   │   ├── impl_momentum.cpp
│   │   ├── impl_power.cpp
│   │   ├── impl_pressure.cpp
│   │   ├── impl_torque.cpp
│   │   ├── impl_weight.cpp
│   │   └── impl_work.cpp
│   ├── Rotational_Dynamics/
│   │   ├── impl_angular_acceleration.cpp
│   │   ├── impl_angular_velocity.cpp
│   │   └── impl_rotational_energy.cpp
│   └── Waves/
│       ├── impl_frequency.cpp
│       ├── impl_period.cpp
│       └── impl_wave_speed.cpp
├── include/
│   ├── Electricity/
│   │   ├── inc_charge.hpp
│   │   ├── inc_coulombs_law.hpp
│   │   ├── inc_ohms_law.hpp
│   │   └── inc_power.hpp
│   ├── Energy/
│   │   ├── inc_efficiency.hpp
│   │   ├── inc_heat_energy.hpp
│   │   ├── inc_kinetic_energy.hpp
│   │   └── inc_potential_energy.hpp
│   ├── Gravity/
│   │   ├── inc_escape_velocity.hpp
│   │   ├── inc_gravitational_acceleration.hpp
│   │   ├── inc_gravitational_force.hpp
│   │   ├── inc_kelpers_third_law.hpp
│   │   ├── inc_orbital_velocity.hpp
│   │   ├── inc_gravitational_potential_energy.hpp
│   │   └── inc_gravitational_force.hpp
│   ├── Mechanics/
│   │   ├── inc_acceleration.hpp
│   │   ├── inc_average_velocity.hpp
│   │   ├── inc_density.hpp
│   │   ├── inc_force.hpp
│   │   ├── inc_hookes_law.hpp
│   │   ├── inc_momentum.hpp
│   │   ├── inc_power.hpp
│   │   ├── inc_pressure.hpp
│   │   ├── inc_torque.hpp
│   │   ├── inc_weight.hpp
│   │   └── inc_work.hpp
│   ├── Rotational_Dynamics/
│   │   ├── inc_angular_acceleration.hpp
│   │   ├── inc_angular_velocity.hpp
│   │   └── inc_rotational_energy.hpp
│   └── Waves/
│       ├── inc_frequency.hpp
│       ├── inc_period.hpp
│       └── inc_wave_speed.hpp
├── src/
│   └── main.cpp
├── tests/
│   ├── RUN_TESTS.sh
│   ├── Electricity/
│   │   ├── test_charge.py
│   │   ├── test_coulombs_law.py
│   │   ├── test_electricity_main.py
│   │   ├── test_ohms_law.py
│   │   └── test_power.py
│   ├── Energy/
│   │   ├── test_efficiency.py
│   │   ├── test_energy_main.py
│   │   ├── test_heat_energy.py
│   │   ├── test_kinetic_energy.py
│   │   └── test_potential_energy.py
│   ├── Gravity/
│   │   ├── test_gravitational_force.py
│   │   ├── test_gravitational_potential_energy.py
│   │   ├── test_kelpers_third_law.py
│   │   ├── test_orbital_velocity.py
│   │   ├── test_escape_velocity.py
│   │   ├── test_gravitational_acceleration.py
│   │   └── test_gravity_main.py
│   ├── Mechanics/
│   │   ├── test_acceleration.py
│   │   ├── test_average_velocity.py
│   │   ├── test_density.py
│   │   ├── test_force.py
│   │   ├── test_hookes_law.py
│   │   ├── test_mechanics_main.py
│   │   ├── test_momentum.py
│   │   ├── test_power.py
│   │   ├── test_pressure.py
│   │   ├── test_torque.py
│   │   ├── test_weight.py
│   │   └── test_work.py
│   ├── Rotational_Dynamics/
│   │   ├── test_angular_acceleration.py
│   │   ├── test_angular_velocity.py
│   │   ├── test_rotational_dynamics_main.py
│   │   └── test_rotational_energy.py
│   └── Waves/
│       ├── test_frequency.py
│       ├── test_period.py
│       ├── test_waves_main.py
│       └── test_wave_speed.py
```

# License <->

`MIT License`
