1. O fecho, e a convenção que a saída carrega

Arraste os pontos. O fecho é recalculado com o predicado exato, e a saída sai no formato do paper: menor índice primeiro, anti-horário, ciclo fechado. Repare no que muda e no que não muda — mexer num ponto interior não muda a saída, e trocar dois rótulos muda a saída sem mexer na geometria.

saída canônica
vértices do fecho
área, do quadrado
triplas: esq / dir / colin.

2. O predicado que erra, e a distância em que ele começa

Aqui o ponto P1 é posto sobre a reta P3–P2, a uma distância controlada. O predicado exato decide em aritmética inteira de precisão arbitrária; o predicado em double decide com o determinante calculado em ponto flutuante. Desça a distância e veja onde os dois deixam de concordar.

sinal exato
sinal em double
determinante em double
concordam?

O artigo mede isto em duas colunas, e não numa: a expressão do determinante pode ser fundida pelo compilador num fma, e a versão fundida erra menos. Aqui só a separada aparece — o JavaScript não funde, e prometer as duas seria prometer o que este arquivo não faz.

3. A permutação: 720 ordens, 90 saídas, 1 fecho

O botão embaralha os rótulos sem mexer nos pontos. A geometria não muda; a saída, às vezes, muda. Os três contadores sobem até parar em 720, 90 e 1 — e o quociente das duas primeiras é 2h.

ordens vistas
0
saídas distintas
0
fechos distintos
0
saída atual

4. O vocabulário, e o limiar que ninguém conta

A camada de vocabulário fixo custa V(d+1); a cabeça de ponteiro, d(2d+1). O ponteiro só é mais barato quando V ≥ 2d. E à direita, o zero estrutural: a chance de o fecho de n pontos caber nos V primeiros índices, calculada em inteiros grandes.

vocabulário fixo
cabeça de ponteiro
limiar 2d
chance de caber