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.