Skip to content

Mathews's algorithm

mathews_algorithm · word · validated

A permutation in which elements of several texts are arranged in a table and each column is rotated by a different amount before being read across.

Provenance

  • Source: Harry Mathews, in Oulipo, Atlas de littérature potentielle (1981)
  • Attribution: primary — a named author, work and year this catalogue stands behind
  • Checkability: source — decidable against the source text it was made from
  • Attested: author-stated — the originator set this rule down

Details

  • Kind: constructive
  • Languages: en, de, fr
  • Requires: tokens
  • Deterministic: yes
  • In other languages: Mathews-Algorithmus (de), Algorithme de Mathews (fr)

Prompt hint

Arrange the texts in a grid, rotate each column by one more step, and read across.

Parameters

Name Type Default Description
source string — The text this one was made from.

Examples

each-row-rotated-by-its-index

en — this text satisfies the procedure.

the quick brown fox jumps
lazy dogs while cats over
warm bright skies sleep under

Parameters: source='the quick brown fox jumps\n\nover lazy dogs while cats\n\nsleep under warm bright skies'

Source: constructed example; the procedure is Harry Mathews's algorithm

unrotated-table-fails

en — this text does not satisfy the procedure.

the quick brown fox jumps
over lazy dogs while cats
sleep under warm bright skies

Parameters: source='the quick brown fox jumps\n\nover lazy dogs while cats\n\nsleep under warm bright skies'

Source: constructed counterexample

jede-zeile-um-ihren-index-gedreht

de — this text satisfies the procedure.

eins zwei drei vier fuenf
sieben acht neun zehn sechs
dreizehn vierzehn fuenfzehn elf zwoelf

Parameters: source='eins zwei drei vier fuenf\n\nsechs sieben acht neun zehn\n\nelf zwoelf dreizehn vierzehn fuenfzehn'

Source: constructed example; the procedure is Harry Mathews's algorithm

ungedrehte-tabelle-scheitert

de — this text does not satisfy the procedure.

eins zwei drei vier fuenf
sechs sieben acht neun zehn
elf zwoelf dreizehn vierzehn fuenfzehn

Parameters: source='eins zwei drei vier fuenf\n\nsechs sieben acht neun zehn\n\nelf zwoelf dreizehn vierzehn fuenfzehn'

Source: constructed counterexample

chaque-ligne-decalee-de-son-rang

fr — this text satisfies the procedure.

un deux trois quatre cinq
sept huit neuf dix six
treize quatorze quinze onze douze

Parameters: source='un deux trois quatre cinq\n\nsix sept huit neuf dix\n\nonze douze treize quatorze quinze'

Source: constructed example; the procedure is Harry Mathews's algorithm

tableau-non-decale

fr — this text does not satisfy the procedure.

un deux trois quatre cinq
six sept huit neuf dix
onze douze treize quatorze quinze

Parameters: source='un deux trois quatre cinq\n\nsix sept huit neuf dix\n\nonze douze treize quatorze quinze'

Source: constructed counterexample