Skip to main content

Balanced ternary arithmetic and multi-valued logic library

Project description

tritlib

Balanced ternary arithmetic and multi-valued logic library for Python.

What is balanced ternary?

Balanced ternary is a numeral system in base 3 where each digit (called a trit) takes values from {−1, 0, +1} instead of the conventional {0, 1, 2}. It allows representing negative numbers without a sign bit, and negation is as simple as inverting every trit. Donald Knuth called it "perhaps the prettiest number system of all."

Features

  • Trit — immutable single‑trit type with arithmetic and logic operators
  • Trits — arbitrary‑length balanced ternary integers
  • Tryte — fixed‑width ternary words
  • Multiple ternary logic systems: Kleene (K3), Łukasiewicz (L3), Heyting (HT) and more
  • Step‑by‑step arithmetic (carry propagation, partial products) for educational use
  • Pure Python, no dependencies, type‑hinted

Installation

pip install tritlib

Quick start

from tritlib.trit import Trit, P, Z, N

# Create trits
t = Trit(1)   # +1
print(t)       # "+"
print(-t)      # "-"

# Predefined constants
assert P == Trit(1)
assert Z == Trit(0)
assert N == Trit(-1)

Roadmap

  • Trit type with immutability, arithmetic, hashing
  • Trit‑level logic (Kleene K3)
  • Trits arbitrary‑precision integers
  • Tryte fixed‑width words
  • Additional logic systems (L3, HT, BI3, Post)
  • Conversion utilities (int, str, float, binary‑coded ternary)
  • Educational step‑by‑step computation output

Development

git clone https://codeberg.org/newick_2/tritlib.git
cd tritlib
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest

License

MIT License — see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tritlib-0.1.2.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tritlib-0.1.2-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file tritlib-0.1.2.tar.gz.

File metadata

  • Download URL: tritlib-0.1.2.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tritlib-0.1.2.tar.gz
Algorithm Hash digest
SHA256 96ea00beb4f21a083b47fc12e3c94a8622285bad0c0276de2bd5535c375fbafb
MD5 1104a8647468f972f72702d0730e238b
BLAKE2b-256 648bc98db9ca41f2bcfaf435ca5f1ddee4faceccadcd26a992e482d71019c284

See more details on using hashes here.

File details

Details for the file tritlib-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: tritlib-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tritlib-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ca311a677a67a3b56ba9affb948b2c4b2eb24683318bfa8f0e874c73b4433696
MD5 b7e43e962c2f1f7a53841ce0d46b65b2
BLAKE2b-256 6b7b7cea09cb40be8fb6d8b5e77810340e4785b658f95a8a504f9fad78664bbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page