Subject | Hash | Author | Date (UTC) |
---|---|---|---|
Move williamson_diagonalization and williamson_form and add simple tests | c237ef65f3eae46800cd06664de163df9eadf989 | Jason Hoelscher-Obermaier | 2016-06-15 14:41:59 |
Move combineCMs and traceOutCM and add simple test | d4170659c28da6a0fe0e7723e20b5574d40d105f | Jason Hoelscher-Obermaier | 2016-06-15 14:31:02 |
Move ui/gui fcts to subfolders of misc/ | 95f71a63ac5e8e1bf88d3f1db7f40759c3d2dd87 | Jason Hoelscher-Obermaier | 2016-06-15 14:02:34 |
Move matrix fcts is_orthogonal and is_symplectic and add simple tests | b2e67152da7c9e2222e6f2b47679d4e6f111977a | Jason Hoelscher-Obermaier | 2016-06-15 14:00:33 |
Move fidelity.m and purity.m and add tests | 1d27232478130ca3ab04b87620f26d7ffe3ef030 | Jason Hoelscher-Obermaier | 2016-06-15 13:42:58 |
Move smss.m and tmss.m | 5bd484893e8e535b13ca20fc62b622433657cd77 | Jason Hoelscher-Obermaier | 2016-06-15 12:40:25 |
Simplify checkCMdimensions.m | 4e45bd575f356bca400b03fb3c40dbe34125ea5d | Jason Hoelscher-Obermaier | 2016-06-15 12:33:55 |
Store software_version together with entanglement_evaluation object and export it | d84aee1d422dcc64881a538c02cbaebb0513db51 | Jason Hoelscher-Obermaier | 2016-06-13 12:29:41 |
Add explicit comparison to eval. results as of commit 5d8d07 to ent.._eval.._test | 7764d769c1b11f0363aeb061c0f6fa3326c5c362 | Jason Hoelscher-Obermaier | 2016-06-13 12:08:43 |
Change 'blocksize' argument in blocked_cross_correlation to key-value type syntax | 5d8d0735783578340181b70eff55d071ba4d25d7 | Jason Hoelscher-Obermaier | 2016-06-13 09:36:01 |
Add quick version of entanglement evalution | 63b2dc15c5fc7a7c5c9f870d783ab8f4d1c95396 | Jason Hoelscher-Obermaier | 2016-06-13 09:35:01 |
Fix wrong calculation of pulse modes (wrong pulse width; gamma -> 2 pi gamma) | f2e86613d70f9f14b6f9b0fa28087c4acae94230 | Jason Hoelscher-Obermaier | 2016-06-13 09:33:34 |
Add fcts for obtaining commit hash for given git repo / all git repos on MATLAB path | efef21a37871118248627a2889e1c3e3ddfaf0cd | Jason Hoelscher-Obermaier | 2016-06-10 14:10:53 |
Export pulse quadratures at end of run_entanglement_evaluation_simulation.m | 1cc8f88b244ea1041aa7503b8d8141f8d85c9959 | Jason Hoelscher-Obermaier | 2016-06-07 13:51:00 |
Restore correct calculation of mode functions | 70ae3d6ae7d2513d506cd400f72048e7c64e0def | Jason Hoelscher-Obermaier | 2016-06-07 13:37:44 |
Fix export of pulse quadratures | f2d5f225c3f1c2c9a1313a1f63b4e5ef8c6e0ce3 | Jason Hoelscher-Obermaier | 2016-06-07 12:51:49 |
Auxfct for permuting data in several files | ab144ff91342465644168d5e19691805bb1de3b7 | Jason Hoelscher-Obermaier | 2016-06-06 09:03:13 |
Correct permutation, add option for inverse permutation | 6c615f43b7d08f0c29268a7b9216478b70dc0bb7 | Jason Hoelscher-Obermaier | 2016-06-06 08:54:21 |
Remove superfluous folder | 3f32158ae47b1dabb7d207917ba9f28abfe346d3 | Jason Hoelscher-Obermaier | 2016-06-03 15:31:33 |
Add function to permute data from from q1...qn p1..pn.. to q1 p1... q1 p2 ... order | 6d79e850ea8240822cae695b4daafd6a5594f578 | Jason Hoelscher-Obermaier | 2016-06-03 15:28:58 |
File | Lines added | Lines deleted |
---|---|---|
misc/covmats/williamson_diagonalization.m | 1 | 3 |
misc/covmats/williamson_form.m | 2 | 4 |
misc/covmats/williamson_test.m | 46 | 0 |
File misc/covmats/williamson_diagonalization.m renamed from misc/williamson_diagonalization.m (similarity 98%) (mode: 100644) (index 8d12951..8fb085b) | |||
... | ... | assert(mod(n,2)==0, 'Size of CM must be 2Nx2N for N>=1'); | |
21 | 21 | mode_no = n/2; | mode_no = n/2; |
22 | 22 | symp_form = symplectic_form(mode_no); | symp_form = symplectic_form(mode_no); |
23 | 23 | ||
24 | % (1) Find the symplectic spectrum | ||
24 | % (1) Find the symplectic spectrum | ||
25 | 25 | sym_spectrum = symp_evals(cm); % in ascending order | sym_spectrum = symp_evals(cm); % in ascending order |
26 | 26 | ||
27 | 27 | % (2) Compute the matrices W^1/2 and V^−1/2 | % (2) Compute the matrices W^1/2 and V^−1/2 |
... | ... | if ~symplectic && false | |
87 | 87 | disp(R*X*R') | disp(R*X*R') |
88 | 88 | end | end |
89 | 89 | end | end |
90 | |||
91 | end |
File misc/covmats/williamson_form.m renamed from misc/williamson_form.m (similarity 72%) (mode: 100644) (index 214be57..85c090a) | |||
1 | 1 | function w_form = williamson_form( cm) | function w_form = williamson_form( cm) |
2 | % williamson_form( cm) returns the Williamson normal form | ||
2 | % williamson_form( cm) returns the Williamson normal form | ||
3 | 3 | % of the covariance matrix cm, ie the matrix diag(ĸ1,ĸ1,ĸ2,ĸ2,..) | % of the covariance matrix cm, ie the matrix diag(ĸ1,ĸ1,ĸ2,ĸ2,..) |
4 | 4 | % (with {ĸi} the symplectic eigenvalues of cm). | % (with {ĸi} the symplectic eigenvalues of cm). |
5 | 5 | % | % |
6 | 6 | % Note that the ĸi are sorted in ascending order. | % Note that the ĸi are sorted in ascending order. |
7 | % This order has, in general, nothing to do with the order | ||
7 | % This order has, in general, nothing to do with the order | ||
8 | 8 | % of quadratures in the original covariance matrix cm. | % of quadratures in the original covariance matrix cm. |
9 | 9 | ||
10 | 10 | s_evals = symp_evals(cm); | s_evals = symp_evals(cm); |
11 | 11 | ||
12 | 12 | w_form = diag(sort(s_evals)); | w_form = diag(sort(s_evals)); |
13 | |||
14 | end |
File misc/covmats/williamson_test.m added (mode: 100644) (index 0000000..52fa376) | |||
1 | function test_suite = williamson_test %#ok<STOUT> | ||
2 | initTestSuite; | ||
3 | |||
4 | function smss_test | ||
5 | cm = smss(2); | ||
6 | vac = eye(2)/2; | ||
7 | |||
8 | w_form = williamson_form(cm); | ||
9 | assertAlmostEqual(w_form, vac, 1e-8); | ||
10 | |||
11 | diagonalizing_mat = williamson_diagonalization(cm); | ||
12 | w_form_2 = diagonalizing_mat*cm*diagonalizing_mat'; | ||
13 | assertAlmostEqual(w_form_2, vac, 1e-8); | ||
14 | |||
15 | function noisy_smss_test | ||
16 | cm = smss(2)+eye(2); | ||
17 | |||
18 | w_form = williamson_form(cm); | ||
19 | diagonalizing_mat = williamson_diagonalization(cm); | ||
20 | w_form_2 = diagonalizing_mat*cm*diagonalizing_mat'; | ||
21 | assertAlmostEqual(w_form, w_form_2, 1e-8); | ||
22 | |||
23 | function tmss_test | ||
24 | cm = tmss(2); | ||
25 | vac = eye(4)/2; | ||
26 | |||
27 | w_form = williamson_form(cm); | ||
28 | assertAlmostEqual(w_form, vac, 1e-8); | ||
29 | |||
30 | diagonalizing_mat = williamson_diagonalization(cm); | ||
31 | w_form_2 = diagonalizing_mat*cm*diagonalizing_mat'; | ||
32 | assertAlmostEqual(w_form_2, vac, 1e-8); | ||
33 | |||
34 | function noisy_tmss_test | ||
35 | cm = tmss(2)+eye(4); | ||
36 | |||
37 | w_form = williamson_form(cm); | ||
38 | diagonalizing_mat = williamson_diagonalization(cm); | ||
39 | w_form_2 = diagonalizing_mat*cm*diagonalizing_mat'; | ||
40 | assertAlmostEqual(w_form, w_form_2, 1e-8); | ||
41 | |||
42 | function diagonality_test | ||
43 | cm = tmss(2)+eye(4); | ||
44 | |||
45 | w_form = williamson_form(cm); | ||
46 | assertAlmostEqual(triu(w_form,1), zeros(4), 1e-8); |