Calculates plots for Tupper's Self-Referential Formula.
Project description
Tupper's Self-Referential Formula plotter
This Python package calculates and plots Tupper's Self-Referential Formula.
I've written about the formula and this project at Tupper’s Self-Referential Formula in Python.
The video that influenced this whole thing is here: https://www.youtube.com/watch?v=_s5RFgd59ao
█ █ █ ██ █ █ █ █ █ █ █ ██ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
██ █ █ █ █ ██ █ █ █ █ █ █ ██ ████ ███ ███ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ███ ███ █ █ █ █ █ █ █ █ █
█ █ █ █ █ █ █ ██ █ █ █ █ █ █ █ █ ██ █ █
███ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ██ █ ██ ███ █ █ █ █ ███ ███ █ ███ ███ █ █ █ █ █
███ █ █ █ █ █ █ █ █ █ █ █ ████ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
██ █ █ █ █ █ ██ ███ █ █ █ ██ █ ████ ████ █ █
█ █ █ █ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █
███ █ █ █ █ █ █ █ █
█ █ █ █ █ █
███ █ ███ ███ █ ███
Requirements
- Python 3
Installation
pip3 install tupper
Console usage
python3 -m tupper
Optional arguments:
--help
-- show usage instructions.--k <number>
-- the value of k to plot.--true <string>
-- the string to print for truthy points.--false <string>
-- the string to print for falsy points.--export <filename>
-- export the (x, y) coordinates and their truthy solution to a CSV file.
If you don't specify k then k =
9609393799189588849716729621278527547150043396601293066515055192717028023952664
2468964284217435071812126715378277062335599323728087414430789132596394133772348
7857735749823926629715517173716995165232890538221612403238855866184013235585136
0488286933379024914542292886670810961844960917051834540678277315517054053816273
8096760256562501698148208341878316384911559022561000365235137034387446184837873
7238198224849863465033159410054974700593138339226497249461751545728366702369745
461014655997933798537483143786841806593422227898388722980000748404719
Code usage
Solver
class
To solve ad-hoc (x, y) points, import the Solver
class and call the solve(x, y)
function:
from tupper import Solver
# ...
s = Solver()
b = s.solve(x, y)
x()
and y()
functions are provided for yielding the coordinates of a graph:
from tupper import Solver
# ...
s = Solver()
k = 960939379918958...
for y in s.y(k):
for x in s.x():
b = s.solve(x, y)
StringPlotter
class
StringPlotter
exposes two functions for rendering graphs as text.
row()
yields the characters for any given row:
from tupper import StringPlotter
# ...
sp = StringPlotter(true_mark="x", false_mark=" ")
k = 960939379918958...
for c in sp.row(k):
print(c, end="")
graph()
yields the characters for the entire graph, including newlines at the end of each row:
from tupper import StringPlotter
# ...
sp = StringPlotter(true_mark="x", false_mark=" ")
k = 960939379918958...
for c in sp.graph(k):
print(c, end="")
Test data
The test_data directory contains CSV files for testing the calculation.
Each file contains three columns:
- The
x
coordinate. - The
y
coordinate. - The expected
true
/false
solution.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tupper-0.10.1.tar.gz
.
File metadata
- Download URL: tupper-0.10.1.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 817c46616eab3be06b81d342796a422d4f1564e3a59036e1cf10371960ac2d93 |
|
MD5 | 43996acb338765738dd5e933d7cf6eb2 |
|
BLAKE2b-256 | 4bb69ea9933ef31f9544b55d23666f768a401a60d1836dc0c57b5c8e910d507a |
File details
Details for the file tupper-0.10.1-py3-none-any.whl
.
File metadata
- Download URL: tupper-0.10.1-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.8.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 02c267fdaeef61f52f004d30160bacd5da3f4bd70f090b65abf30671e834fbd7 |
|
MD5 | 3fd2adc00a7293629da315ac265f06ef |
|
BLAKE2b-256 | b9c2a47f062ac37d0ffb05956a9fd062e38ea52279944d77e26b9e9e707d1fdf |