![](http://image.absoluteastronomy.com/images//topicimages/t/tu/tuppers_self-referential_formula.gif)
Tupper's self-referential formula
Encyclopedia
Tupper's self-referential formula is a self-referential
formula
defined by Jeff Tupper that, when graphed in two dimensions, can visually reproduce the formula itself. It is used in various maths
and computer science
courses as an exercise in graphing formulae.
The formula was first published in his 2001 SIGGRAPH
paper that discusses methods related to the GrafEq formula-graphing program he developed.
The formula is an inequality defined by:
where
denotes the floor function and mod is the modulo operation
.
Let k equal the following:
4858450636189713423582095962494202044581400587983244549483093085061934704708809928450644769865524364849997247024915119110411605739177407
8569197543265718554420572104457358836818298237541396343382251994521916512843483329051311931999535024137587652392648746133949068701305622
9581321948111368533953556529085002387509285689269455597428154638651073004910672305893358605254409666435126534936364395712556569593681518
4334857605266940161251266951421550539554519153785457525756590740540157929001765967965480064427829131488548259914721248506352686630476300
If one graphs
the set of points (x,y-k) with
and
such that they satisfy the inequality given above, the resulting graph looks like this:
![](http://image.absoluteastronomy.com/images/encyclopediaimages/t/tu/tuppers_self_referential_formula_plot.png)
The formula itself is a general purpose method of decoding a bitmap stored in the constant k, so it could actually 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 106x17 bitmaps. One horizontal slice of that infinite bitmap depicts the drawing formula itself, but this is not remarkable, since other slices depict all other possible formulae that might fit in the same 106x17 space.
The constant k is a simple monochrome bitmap image
of the formula treated as a binary number and multiplied by 17. If k is divided by 17, the least significant bit
encodes the top 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.
Self-reference
Self-reference occurs in natural or formal languages when a sentence or formula refers to itself. The reference may be expressed either directly—through some intermediate sentence or formula—or by means of some encoding...
formula
Formula
In mathematics, a formula is an entity constructed using the symbols and formation rules of a given logical language....
defined by Jeff Tupper that, when graphed in two dimensions, can visually reproduce the formula itself. It is used in various maths
Mathematics
Mathematics is the study of quantity, space, structure, and change. Mathematicians seek out patterns and formulate new conjectures. Mathematicians resolve the truth or falsity of conjectures by mathematical proofs, which are arguments sufficient to convince other mathematicians of their validity...
and computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
courses as an exercise in graphing formulae.
The formula was first published in his 2001 SIGGRAPH
SIGGRAPH
SIGGRAPH is the name of the annual conference on computer graphics convened by the ACM SIGGRAPH organization. The first SIGGRAPH conference was in 1974. The conference is attended by tens of thousands of computer professionals...
paper that discusses methods related to the GrafEq formula-graphing program he developed.
The formula is an inequality defined by:
where
![](http://image.absoluteastronomy.com/images/formulas/3/0/3309362-2.gif)
Modulo operation
In computing, the modulo operation finds the remainder of division of one number by another.Given two positive numbers, and , a modulo n can be thought of as the remainder, on division of a by n...
.
Let k equal the following:
4858450636189713423582095962494202044581400587983244549483093085061934704708809928450644769865524364849997247024915119110411605739177407
8569197543265718554420572104457358836818298237541396343382251994521916512843483329051311931999535024137587652392648746133949068701305622
9581321948111368533953556529085002387509285689269455597428154638651073004910672305893358605254409666435126534936364395712556569593681518
4334857605266940161251266951421550539554519153785457525756590740540157929001765967965480064427829131488548259914721248506352686630476300
If one graphs
Graph of a function
In mathematics, the graph of a function f is the collection of all ordered pairs . In particular, if x is a real number, graph means the graphical representation of this collection, in the form of a curve on a Cartesian plane, together with Cartesian axes, etc. Graphing on a Cartesian plane is...
the set of points (x,y-k) with
![](http://image.absoluteastronomy.com/images/formulas/3/0/3309362-3.gif)
![](http://image.absoluteastronomy.com/images/formulas/3/0/3309362-4.gif)
![](http://image.absoluteastronomy.com/images/encyclopediaimages/t/tu/tuppers_self_referential_formula_plot.png)
The formula itself is a general purpose method of decoding a bitmap stored in the constant k, so it could actually be used to draw any other image. When applied to the unbounded positive range
![](http://image.absoluteastronomy.com/images/formulas/3/0/3309362-5.gif)
The constant k is a simple monochrome bitmap image
Bitmap
In computer graphics, a bitmap or pixmap is a type of memory organization or image file format used to store digital images. The term bitmap comes from the computer programming terminology, meaning just a map of bits, a spatially mapped array of bits. Now, along with pixmap, it commonly refers to...
of the formula treated as a binary number and multiplied by 17. If k is divided by 17, the least significant bit
Least significant bit
In computing, the least significant bit is the bit position in a binary integer giving the units value, that is, determining whether the number is even or odd. The lsb is sometimes referred to as the right-most bit, due to the convention in positional notation of writing less significant digits...
encodes the top 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.
External links
- Jeff Tupper official site
- TupperPlot, an implementation in JavaScript