elkhadiy / elkomplex

Toy implementation of a complex number data type in Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ“šπŸ”’ Toy implementation of a complex number data type in Python

This module is a basic implementation of complex numbers in Python. The goal is to demonstrate basic know-how in Python packaging, project managment, documentation and testing.

This package is not in any way, shape or form suitable for production!

πŸ’½ Install

🐍 From pip

$ pip install elkomplex

πŸ‘¨β€πŸ’» Development mode

$ git clone https://github.com/elkhadiy/elkomplex
$ cd elkomplex
$ python -m venv .pyenv
$ . .pyenv/bin/activate
$ pip install -e .[dev,test]
$ pytest

πŸ’» Example usage

>>> from elkomplex import i
>>> from math import e, pi
>>> str(e**(i*pi))
'-1.00 + 0.00 i'

Intuitive interface

>>> from elkomplex import i
>>> f"{i}"
'0 + 1 i'
>>> f"{i * i:0.2f}"
'-1.00 + 0.00 i'
>>> f"{2 + 3 * i}"
'2.0 + 3.0 i'
>>> f"{(2 + 3 * i) * (4 + 5 * i):0.2f}"
'-7.00 + 22.00 i'

Create a complex number from real and imaginary parts

>>> from elkomplex import Komplex
>>> Komplex.from_cartesian(2, 3)
Komplex(re=2.00, im=3.00, r=3.61, th=0.98)

Create a complex number from polar coordinates

>>> from math import pi
>>> Komplex.from_polar(1, pi / 4)
Komplex(re=0.71, im=0.71, r=1.00, th=0.79)

πŸ“‹ ToDo

  • βœ… Package squeleton
  • βœ… Base complex class
  • βœ… Basic constructors
  • βœ… Formatting and printing
  • βœ… Pytest framework
  • 🚧 Basic Arithmetic methods
    • βœ… Addition
    • βœ… Substraction
    • βœ… Multiplication
    • βœ… Division
    • βœ… Comparison
    • βœ… Negation
    • βœ… Module
    • βœ… Inversion
    • βœ… Conjugate
    • 🚧 Power
  • ⬜ Advanced Math functions
    • ⬜ Exponent
    • ⬜ Sqrt
    • ⬜ Logarithm

About

Toy implementation of a complex number data type in Python

License:MIT License


Languages

Language:Python 100.0%