Browse Source

More tidying

master
Pete Shadbolt 8 years ago
parent
commit
83575e3bc9
7 changed files with 259 additions and 40523 deletions
  1. +12
    -10
      static/anders_briegel.js
  2. +0
    -0
      static/curve.js
  3. +1
    -1
      static/graph.js
  4. +0
    -1
      static/index.html
  5. +9
    -12
      static/main.js
  6. +6
    -6
      static/materials.js
  7. +231
    -40493
      static/orbitcontrols.js

+ 12
- 10
static/anders_briegel.js View File

@@ -5,6 +5,7 @@ abj.meta = {};
ngbh = abj.ngbh;
vops = abj.vops;
meta = abj.meta;

abj.add_node = function(node, m) {
ngbh[node] = {};
vops[node] = clifford.hadamard;
@@ -45,7 +46,9 @@ abj.toggle_edge = function(a, b) {

abj.get_swap = function(node, avoid) {
for (var i in ngbh[node]) {
if (i != avoid) {return i;}
if (i != avoid) {
return i;
}
}
return avoid;
};
@@ -53,7 +56,7 @@ abj.get_swap = function(node, avoid) {
abj.remove_vop = function(node, avoid) {
var swap_qubit = get_swap(node, avoid);
var decomposition = decompositions[vops[node]];
for (var i=decomposition.length-1; i >=0; --i) {
for (var i = decomposition.length - 1; i >= 0; --i) {
var v = decomposition[i];
local_complementation(v == "x" ? a : swap_qubit);
}
@@ -61,8 +64,8 @@ abj.remove_vop = function(node, avoid) {

abj.local_complementation = function(node) {
var keys = Object.keys(ngbh[node]);
for (var i=0; i < keys.length; ++i) {
for (var j=i+1; j < keys.length; ++j) {
for (var i = 0; i < keys.length; ++i) {
for (var j = i + 1; j < keys.length; ++j) {
toggle_edge(keys[i], keys[j]);
}
vops[i] = times_table[vops[keys[i]]][sqz_h];
@@ -75,15 +78,15 @@ abj.act_local_rotation = function(node, operation) {
vops[node] = times_table[rotation][vops[node]];
};

abj.act_hadamard = function(node){
abj.act_hadamard = function(node) {
act_local_rotation(node, 10);
};

abj.is_sole_member = function(node, group){
abj.is_sole_member = function(node, group) {
return group.length == 1 && group[0] == node;
};

abj.act_cz = function(a, b){
abj.act_cz = function(a, b) {
if (is_sole_member(ngbh[a], b)) {
remove_vop(a, b);
}
@@ -97,7 +100,7 @@ abj.act_cz = function(a, b){
var new_state = cz_table[edge ? 1 : 0][vops[a]][vops[b]];
vops[a] = new_state[1];
vops[b] = new_state[2];
if (new_state[0] != edge){
if (new_state[0] != edge) {
toggle_edge(a, b);
}
};
@@ -107,7 +110,7 @@ abj.edgelist = function() {
var output = [];
for (var i in ngbh) {
for (var j in ngbh[i]) {
if (!Object.prototype.hasOwnProperty.call(seen, j)){
if (!Object.prototype.hasOwnProperty.call(seen, j)) {
output.push([i, j]);
}
}
@@ -120,4 +123,3 @@ abj.log_graph_state = function() {
console.log(JSON.stringify(vops));
console.log(JSON.stringify(ngbh));
};


+ 0
- 0
static/curve.js View File


+ 1
- 1
static/graph.js View File

@@ -1,7 +1,7 @@
var colors = ["red", "green", "yellow", "blue", "pink", "orange", "purple"];
var ws;

function connect_to_server() {
function connectToServer() {
ws = new WebSocket("ws://localhost:5000");
ws.onopen = function()
{


+ 0
- 1
static/index.html View File

@@ -14,7 +14,6 @@
<script type="text/javascript" src="tables.js"></script>
<script type="text/javascript" src="anders_briegel.js"></script>
<script type="text/javascript" src="materials.js"></script>
<script type="text/javascript" src="api.js"></script>
<script type="text/javascript" src="graph.js"></script>
<script type="text/javascript" src="main.js"></script>
<img id="ball" src="data:image/png;base64,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"/


+ 9
- 12
static/main.js View File

@@ -10,7 +10,7 @@ window.onload = init;
function makeScene() {
var myScene = new THREE.Scene();
var grid = new THREE.GridHelper(10, 1);
grid.rotation.x = Math.PI/2;
grid.rotation.x = Math.PI / 2;
grid.setColors(0xdddddd, 0xeeeeee);
myScene.add(grid);
return myScene;
@@ -19,33 +19,30 @@ function makeScene() {

// Render the current frame to the screen
function render() {
requestAnimationFrame(function () {
requestAnimationFrame(function() {
renderer.render(scene, camera);
});
}

// Someone resized the window
function onWindowResize(evt){
function onWindowResize(evt) {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize(window.innerWidth, window.innerHeight);
render();
}

function bind_events() {
window.addEventListener("resize", onWindowResize, false);
controls.addEventListener("change", render);

}


// Called on startup
function init() {
// Renderer
renderer = new THREE.WebGLRenderer({"antialias":true});
renderer = new THREE.WebGLRenderer({
"antialias": true
});
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0xffffff, 1);
document.querySelector("body").appendChild(renderer.domElement);
window.addEventListener("resize", onWindowResize, false);

// Time to load the materials
loadMaterials();
@@ -55,11 +52,11 @@ function init() {
controls = new THREE.OrbitControls(camera);
controls.center.set(0, 0, 0);
controls.rotateSpeed = 0.2;
controls.addEventListener("change", render);
camera.position.set(0, 0, 20);

// Run
bind_events();
scene = makeScene();
connect_to_server();
connectToServer();
render();
}

+ 6
- 6
static/materials.js View File

@@ -1,5 +1,11 @@
var textures = {};
var materials = {};
// Curve settings
var curveProperties = {
splineDensity: 10,
curvature: 100
};


// Load the site texture from the data URI
function loadMaterials(argument) {
@@ -33,12 +39,6 @@ function loadMaterials(argument) {
materials.qubit = new THREE.PointsMaterial(qubitStyle);
}

// Curve settings
var curveProperties = {
splineDensity: 10,
curvature: 100
};

// Add a curved edge between two points
function makeCurve(a, b) {
// Make the geometry of the curve


+ 231
- 40493
static/orbitcontrols.js
File diff suppressed because it is too large
View File


Loading…
Cancel
Save