Behavior · Published v1

XEven

XEven from Quantum Double Slit.

From Quantum Double Slit · v2. Edit this definition in its source simulation.

Source

behavior XEven for Quantum {
    update when self.open > 0.5 && self.xEven == 1.0 {
        let linked = (neighbors[Quantum, +X].open else 0.0);
        let c = 1.0 + linked * (0.99500416527802571 - 1.0);
        let s = linked * 0.09983341664682815;
        let r = self.real * c - (neighbors[Quantum, +X].imag else 0.0) * s;
        let i = self.imag * c + (neighbors[Quantum, +X].real else 0.0) * s;
        set self.real = clamp(r, -2.0, 2.0);
        set self.imag = clamp(i, -2.0, 2.0);
    }
    update when self.open > 0.5 && self.xEven == 0.0 {
        let linked = (neighbors[Quantum, -X].open else 0.0);
        let c = 1.0 + linked * (0.99500416527802571 - 1.0);
        let s = linked * 0.09983341664682815;
        let r = self.real * c - (neighbors[Quantum, -X].imag else 0.0) * s;
        let i = self.imag * c + (neighbors[Quantum, -X].real else 0.0) * s;
        set self.real = clamp(r, -2.0, 2.0);
        set self.imag = clamp(i, -2.0, 2.0);
    }
}

Building blocks

These exact versions are included when you reuse this artifact.

PropertyQuantum@hyle · v1