Rumus referensi-diri Tupper

Rumus referensi-diri Tupper merupakan sebuah rumus diperkenalkan oleh Jeff Tupper bahwa, saat dgambarkan dalam dua dimensi pada lokasi tertentu pada bidang, dapat di"program" untuk menampikan rumus tersebut. Rumus ini dipakai dalam pendidikan matematika dan ilmu komputer sebagai sebuah latihan dalam rumus grafik. Meskipun rumus ini dikenal sebagai "rumus referensi-diri", sebenarnya merupakan sebuah nama yang salah, karena gambar tersebut tidak menyandikan konstanta K yang merupakan data eksternal, dan Tupper sendiri tidak menjelaskan rumus tersebut dengan cara tersebut. Rumus ini pertama kali dipublikasikan dalam naskah SIGGRAPH 2001nya yang membahas cara terkait program penggambar-rumus GrafEq yang dia kembangkan. Rumus ini merupakan pertidaksamaan: di mana ⌊ ⋅ ⌋ menandakan fungsi pembulatan ke bawah, dan m o d merupakan operasi modulus. Misalkan k sama dengan bilangan bulat 543-digit berikut ini: Jika satu grafik menggambarkan kumpulan titik (x, y) dalam 0 ≤ x < 106 dan k ≤ y < k + 17 sesuai dengan pertidaksamaan di atas, menghasilkan grafik seperti ini (ingat bahwa sumbu pada grafik ini telah dibalik, jika tidak gambar akan keluar terbalik atas bawah): Rumus ini sendiri merupakan cara umum dari penguraian sebuah bitmap yang disimpan dalam konstanta k, jadi ini dapat digunakan untuk menggambar gambar yang lain. Saat dipakai dalam 0 ≤ y , rumus ini memetakan sebuah petak vertikal dengan pola yang terkandung semua kemungkinan bitmap setinggi 17 piksel. Satu potongan dari bitmap tak terhingga tersebut melukiskan rumus menggambar itu sendiri, tetapi bukanlah sesuatu yang luar biasa, semenjak potongan lain menggambarkan semua kemungkinan yang lain yang mungkin cukup dalam sebuah bitmap setinggi 17 piksel. Tupper telah menyebarkan informasi, lewat surel, versi tambahan dari rumus aslinya yang mengatur semua kecuali satu potongan (,, ). Konstanta k adalah sebuah gambar bitmap monokromatik sederhana dari rumus yang diperlakukan sebagai sebuah bilangan biner dan dikali 17, least significant bit menyandikan pojok kanan-atas (k, 0); 17 least significant bit menyandikan kolom paling kanan dari piksel; 17 least significant bit selanjutnya menyandikan kolom paling kanan kedua, dan seterusnya, membentuk gambar dari rumus.