Tupper's self-referential formula
{{Short description|Formula that visually represents itself when graphed}}
Tupper's self-referential formula is a formula that visually represents itself when graphed at a specific location in the (x, y) plane.
History
The formula was defined by Jeff Tupper and appears as an example in his 2001 SIGGRAPH paper on reliable two-dimensional computer graphing algorithms.* [http://www.dgp.toronto.edu/~mooncake/papers/SIGGRAPH2001_Tupper.pdf Tupper, Jeff. "Reliable Two-Dimensional Graphing Methods for Mathematical Formulae with Two Free Variables"] {{Webarchive|url=https://web.archive.org/web/20190713092613/http://www.dgp.toronto.edu/~mooncake/papers/SIGGRAPH2001_Tupper.pdf |date=2019-07-13 }} This paper discusses methods related to the GrafEq formula-graphing program developed by Tupper.{{Cite web|url=http://www.peda.com/grafeq/|title=Pedagoguery Software: GrafEq|website=www.peda.com|access-date=2007-09-09|archive-date=2021-02-24|archive-url=https://web.archive.org/web/20210224144419/http://www.peda.com/grafeq/|url-status=live}}
Formula
The formula is an inequality defined as:
where denotes the floor function, and mod is the modulo operation.
Plots
Let equal the following 543-digit integer:
:960{{thinspace}}939{{thinspace}}379{{thinspace}}918{{thinspace}}958{{thinspace}}884{{thinspace}}971{{thinspace}}672{{thinspace}}962{{thinspace}}127{{thinspace}}852{{thinspace}}754{{thinspace}}715{{thinspace}}004{{thinspace}}339{{thinspace}}660{{thinspace}}129{{thinspace}}306{{thinspace}}651{{thinspace}}505{{thinspace}}519{{thinspace}}271{{thinspace}}702{{thinspace}}802{{thinspace}}395{{thinspace}}266{{thinspace}}424{{thinspace}}689{{thinspace}}642{{thinspace}}842{{thinspace}}174{{thinspace}}350{{thinspace}}718{{thinspace}}121{{thinspace}}267{{thinspace}}153{{thinspace}}782{{thinspace}}770{{thinspace}}623{{thinspace}}355{{thinspace}}993{{thinspace}}237{{thinspace}}280{{thinspace}}874{{thinspace}}144{{thinspace}}307{{thinspace}}891{{thinspace}}325{{thinspace}}963{{thinspace}}941{{thinspace}}337{{thinspace}}723{{thinspace}}487{{thinspace}}857{{thinspace}}735{{thinspace}}749{{thinspace}}823{{thinspace}}926{{thinspace}}629{{thinspace}}715{{thinspace}}517{{thinspace}}173{{thinspace}}716{{thinspace}}995{{thinspace}}165{{thinspace}}232{{thinspace}}890{{thinspace}}538{{thinspace}}221{{thinspace}}612{{thinspace}}403{{thinspace}}238{{thinspace}}855{{thinspace}}866{{thinspace}}184{{thinspace}}013{{thinspace}}235{{thinspace}}585{{thinspace}}136{{thinspace}}048{{thinspace}}828{{thinspace}}693{{thinspace}}337{{thinspace}}902{{thinspace}}491{{thinspace}}454{{thinspace}}229{{thinspace}}288{{thinspace}}667{{thinspace}}081{{thinspace}}096{{thinspace}}184{{thinspace}}496{{thinspace}}091{{thinspace}}705{{thinspace}}183{{thinspace}}454{{thinspace}}067{{thinspace}}827{{thinspace}}731{{thinspace}}551{{thinspace}}705{{thinspace}}405{{thinspace}}381{{thinspace}}627{{thinspace}}380{{thinspace}}967{{thinspace}}602{{thinspace}}565{{thinspace}}625{{thinspace}}016{{thinspace}}981{{thinspace}}482{{thinspace}}083{{thinspace}}418{{thinspace}}783{{thinspace}}163{{thinspace}}849{{thinspace}}115{{thinspace}}590{{thinspace}}225{{thinspace}}610{{thinspace}}003{{thinspace}}652{{thinspace}}351{{thinspace}}370{{thinspace}}343{{thinspace}}874{{thinspace}}461{{thinspace}}848{{thinspace}}378{{thinspace}}737{{thinspace}}238{{thinspace}}198{{thinspace}}224{{thinspace}}849{{thinspace}}863{{thinspace}}465{{thinspace}}033{{thinspace}}159{{thinspace}}410{{thinspace}}054{{thinspace}}974{{thinspace}}700{{thinspace}}593{{thinspace}}138{{thinspace}}339{{thinspace}}226{{thinspace}}497{{thinspace}}249{{thinspace}}461{{thinspace}}751{{thinspace}}545{{thinspace}}728{{thinspace}}366{{thinspace}}702{{thinspace}}369{{thinspace}}745{{thinspace}}461{{thinspace}}014{{thinspace}}655{{thinspace}}997{{thinspace}}933{{thinspace}}798{{thinspace}}537{{thinspace}}483{{thinspace}}143{{thinspace}}786{{thinspace}}841{{thinspace}}806{{thinspace}}593{{thinspace}}422{{thinspace}}227{{thinspace}}898{{thinspace}}388{{thinspace}}722{{thinspace}}980{{thinspace}}000{{thinspace}}748{{thinspace}}404{{thinspace}}719
File:Tupper_formula_constant_derivation.svg
Graphing the set of points in and which satisfy the formula, results in the following plot:{{NoteTag|1=The axes in this plot have been reversed, otherwise the picture would be upside-down and mirrored.}}
File:Tupper's self referential formula plot.svg
The formula is a general-purpose method of decoding a bitmap stored in the constant , and it could be used to draw any other image. When applied to the unbounded positive range , the formula tiles a vertical swath of the plane with a pattern that contains all possible 17-pixel-tall bitmaps. One horizontal slice of that infinite bitmap depicts the drawing formula since other slices depict all other possible formulae that might fit in a 17-pixel-tall bitmap. Tupper has created extended versions of his original formula that rule out all but one slice.{{Cite web |url=http://www.peda.com/selfplot/ |website=Pedagoguery Software |title=Selfplot directory |access-date=2022-01-15}}
The constant is a simple monochrome bitmap image of the formula treated as a binary number and multiplied by 17. If is divided by 17, the least significant bit encodes the upper-right corner ; the 17 least significant bits encode the rightmost column of pixels; the next 17 least significant bits encode the 2nd-rightmost column, and so on.
It fundamentally describes a way to plot points on a two-dimensional surface. The value of is the number whose binary digits form the plot. The following plot demonstrates the addition of different values. In the fourth subplot, the k-value of "AFGP" and "Aesthetic Function Graph" is added to get the resultant graph, where both texts can be seen with some distortion due to the effects of binary addition. The information regarding the shape of the plot is stored within .{{cite web |title=Tupper's-Function |date=2019-06-13 |url=https://github.com/AEFGP/Tupper-s-Function |publisher=Aesthetic Function Graphposting |access-date=2019-07-07 |website=Github}}
See also
- {{annotated link|Recursion}}
- {{annotated link|Strange loop}}
References
=Footnotes=
{{notefoot}}
=Notes=
{{Reflist}}
=Sources=
{{Refbegin}}
- [http://mathworld.wolfram.com/TuppersSelf-ReferentialFormula.html Weisstein, Eric W. "Tupper's Self-Referential Formula." From MathWorld—A Wolfram Web Resource.] {{Webarchive|url=https://web.archive.org/web/20210205114138/https://mathworld.wolfram.com/TuppersSelf-ReferentialFormula.html |date=2021-02-05 }}
- [http://crd-legacy.lbl.gov/~dhbailey/dhbpapers/hpmpd.pdf Bailey, D. H.; Borwein, J. M.; Calkin, N. J.; Girgensohn, R.; Luke, D. R.; and Moll, V. H. Experimental Mathematics in Action. Natick, MA: A. K. Peters, p. 289, 2006.] {{Webarchive|url=https://web.archive.org/web/20161221090129/http://crd-legacy.lbl.gov/~dhbailey/dhbpapers/hpmpd.pdf |date=2016-12-21 }}
- "Self-Answering Problems." Math. Horizons 13, No. 4, 19, April 2006
- [http://stanwagon.com/wagon/Misc/bestpuzzles.html Wagon, S. Problem 14 in stanwagon.com] {{Webarchive|url=https://web.archive.org/web/20070202043013/http://stanwagon.com/wagon/Misc/bestpuzzles.html |date=2007-02-02 }}
{{Refend}}
External links
- {{official|http://www.dgp.toronto.edu/~mooncake/|Jeff Tupper's official website}}
- [http://www.peda.com/selfplot/ Extensions of Tupper's original self-referential formula]
- [https://rosettacode.org/wiki/Tupper%27s_self-referential_formula Tupper's self-referential formula in Rosetta Code], implementation in several programming languages
- [https://amcrae.github.io/TupperPlot/TupperPlot.html TupperPlot], an implementation in JavaScript
- [https://web.archive.org/web/20130319093833/http://www.pypedia.com/index.php/Tupper_self_referential_formula Tupper self referential formula], an implementation in Python
- [http://avitzur.hax.com/2007/01/the_library_of_babel_function.html The Library of Babel function], a detailed explanation of the workings of Tupper's self-referential formula
- [https://tuppers-formula.ovh Tupper's Formula Tools], an implementation in JavaScript
- [http://jtra.cz/stuff/essays/math-self-reference/index.html Trávník's formula that draws itself close to the origin]