We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Sigma Cortex

From Esolang
Jump to navigation Jump to search
Sigma Cortex
Paradigm(s) Unknown
Designed by User:Hakerh400
Appeared in 2026
Computational class Bounded storage machine
Major implementations Implemented
File extension(s) .txt

Sigma Cortex is an esolang invented by User:Hakerh400 in 2026.

Overview

Memory consists of a finite set of variables. Each variable represents a real number between -1 and 1. Each line in the source code represents an assignment to a variable. For example:

x := 3x - 5
y := 2x + 0.75y + z
z := 2y + x - r + 1

Assignment is represented by variable name, then :=, and after that an expression consisting of variables and rational multipliers. Each variable can have at most one assignment. Variables that have no assignemt represent the input variables. Internal variables are the ones that have assignemnts in the source code. In this example, internal variables are x, y, z, while the only input variable is r.

Initially, all internal variables start at 0. Interpreter updates assignments in a loop. It takes a snapshot of the old assignment of all variables, and for each assignemnt, computes hyperbolic tan function of the evaluated expression based on old assignment. For example, in the next iteration we will have:

x_new := tanh(3 * x_old - 5)
y_new := tanh(2 * x_old + 0.75 * y_old + z_old)
z_new := tanh(2 * y_old + x_old - r_old + 1)

The order of assignments in the source code does not matter.

Examples

Constant 0

x := 0

Since tanh(0) = 0, variable x remains 0.

Constant 1

x := 100

It is impossible to represent 1 exactly, but we can get very close to 1. The value of tanh(100) is close enough to 1 for all practical purposes. If we want -1, we would use -100.

Simple oscillator

x := -100x + 1

Variable x oscillates between 1 and -1. Without the + 1, it would remain 0.

4-step oscillator

x := -100y + 1
y := 100x

This system oscillates with period 4.

Game of Life

Implementation. It uses 4 variables to represent a single GoL cell and uses 2 iterations to simulate a single GoL iteration.

Fixpoint

a := 1.05 * (0.9998 * a - 0.0199987 * b) + 0.01
b := 1.05 * (0.0199987 * a + 0.9998 * b)

This system transforms slowly, but eventually reaches a fixpoint (tends to a fixpoint; can't reach exactly).

External resources