Skip to content

v2.0 - April 2017

Compare
Choose a tag to compare
@Strilanc Strilanc released this 30 Apr 03:32
· 153 commits to master since this release

Breaking changes from v1 to v2:

  • Changed spherical coordinate system to match physics conventions
    • Off is upward, On is downward
    • Z up/down, Y left/right, X toward/away
    • Theta ranges from 0 (up) to 180 (down)
    • Phi=0 points toward user, Phi=90 points rightward
  • Swapped the Off/On symbols for both the X-controls and Y-controls
    • X-On is a circled plus (matches the NOT gate, since they interchange)
    • X-Off is a circled-minus
    • Y-On is a circled cross
    • Y-Off is a circled slash
    • Serialized ids did not change; old circuits will load correctly

Notable User Changes:

  • Bug fixes:
    • Fixed reversed-input gates not reversing
    • Fixed input gates not drawing control lines into custom circuit gates
    • Fixed drawing control lines to custom identity operations
    • Fixed permute-wire drawings not fully erasing covered wires
    • Fixed bad URLs being created for custom gates with '%' or '&' in their names
  • Toolbox changes
    • Hid exp(iUt) gates
    • Hid 16'th-root gates
    • Hid shift-cycling gates
    • Moved all X/Y/Z gates to top
    • Added parametrized X/Y/Z gates
    • Added comparison gates
    • Added multiplication gates
    • Added 'set default input' gates
    • Added modular arithmetic gates and Input R
    • Added interleave gates
  • Appearance:
    • Bottom toolbox has a fourth row
    • Input gates shaded gray
    • Bit-rotate gates show a rearranged-wire symbol
    • Bit-permutating gates show the wire re-arranging even when controlled
    • Increment/Decrement gates now show "+1" and "-1" instead of "++" and "--"
    • Sample gate shows an extra decimal ket in its tooltip text
    • Added 'Shor Period Finding' example
    • Added version indicator
    • Gates no longer show a 'resizable' symbol
    • Phase gradient gates now show "e^iπ%" instead of incorrect "Z^#"

Notable Dev Changes:

  • Improved startup time
    • Added mutation-based GateBuilder and used it instead of replacement-based Gate.with methods
    • All resizable gates now give matrix functions instead of spending time making matrices
    • Avoided creating webgl context twice
    • Switched shaderFromBitPermutation from Seq to a raw loop
  • Support for multi-line gate symbols
  • Support for clickable gate buttons
  • Separated gate effect properties into 'actual' (for simulating) and 'known' (for drawing/testing)
  • Commented the Gate class
  • Extracted unit-tested methods from control-line-drawing code
  • Added 'knownPermutation' gate effect, and added tests for validating actual effect against permutation
  • Added ketInputGateShaderCode/ketInputGateArgs, unifying how gates get inputs
  • Added serialized 'param' property to gates