Behavior · Published v1

YOdd

YOdd from Quantum Double Slit.

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

Source

behavior YOdd for Quantum {
    update when self.open > 0.5 && self.yEven == 1.0 {
        let linked = (neighbors[Quantum, -Y].open else 0.0);
        let c = 1.0 + linked * (0.98006657784124163 - 1.0);
        let s = linked * 0.19866933079506122;
        let r = self.real * c - (neighbors[Quantum, -Y].imag else 0.0) * s;
        let i = self.imag * c + (neighbors[Quantum, -Y].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.yEven == 0.0 {
        let linked = (neighbors[Quantum, +Y].open else 0.0);
        let c = 1.0 + linked * (0.98006657784124163 - 1.0);
        let s = linked * 0.19866933079506122;
        let r = self.real * c - (neighbors[Quantum, +Y].imag else 0.0) * s;
        let i = self.imag * c + (neighbors[Quantum, +Y].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