List of commits:
Subject Hash Author Date (UTC)
Refactor calibratePulsedCMs and trace_out c108334ad59fd087cef91e002a992e50652dc6e4 Jason Hoelscher-Obermaier 2017-03-28 11:56:13
Add logging of git-status via status_git_repos_on_path to simulate_entanglement 3658991dd37a657cad1a3aba5933a276b649fbd1 Jason Hoelscher-Obermaier 2017-03-28 10:08:52
Improve logging of git status in class_conveniences: dirty working tree state is also logged 96a3acca155c3ad47edaa625368e5a25875c332b Jason Hoelscher-Obermaier 2017-03-28 09:51:53
Add 3rd-party convenience fct printstruct.m to print a tree-view of a struct d6595191240086e6c8247a6e055c8e4a161d4459 Jason Hoelscher-Obermaier 2017-03-27 14:39:19
Improve plot appearance in plotLogneg.m and add option to reposition legend. 81d281f0f354594af42a13722ed6994cb1b0d0fb Jason Hoelscher-Obermaier 2017-03-27 11:43:15
Improve legend in plotLogneg to also include entries for interpolated data and optima 805cb3e67bad3be9bddafada3258f5a8a7e60707 Jason Hoelscher-Obermaier 2017-03-27 11:14:06
Add function tex_escape which escapes characters forbidden in tex 136b200a3a98f06f36b4ae3a18a97c66ce1b8c88 Jason Hoelscher-Obermaier 2017-03-27 10:03:53
Store interpolated pulse widths and entanglement (used in calulate_optimal_entanglement) for later inspection. c76c9b0d1be1bd00425949fb12cd59f2c743ff5f Jason Hoelscher-Obermaier 2017-03-27 10:35:10
Add options to show grid and zero-line to plotLogneg.m 0e7dff29041930f205c30113c72595f60545182d Jason Hoelscher-Obermaier 2017-03-27 08:43:56
Update submodule export_fig ea150793f485ff88cad104d7f4493f22904f3df6 Jason Hoelscher-Obermaier 2017-03-25 06:30:12
Bug fix: Remove line yielding unneeded output d11c6eae8bf5f2ad38c858a4b9618acd3af4bd8b Jason Hoelscher-Obermaier 2017-03-24 19:45:04
Add method calulate_optimal_entanglement.m to entanglement_evaluation-class 894eef46922695d0f451773d4d8c9df64d2922e0 Jason Hoelscher-Obermaier 2017-03-24 19:35:40
Add test: Ensure orthonormality is checked for mode functions (instead of columns of mode fct matrices) aa1dd49269c45e2e070f4ab5cdef23a59246ae65 Jason Hoelscher-Obermaier 2017-03-22 10:33:40
Bug fix in calculate_mode_vectors_gammalist.m aa18a37ba8fd5108c5fa47f48bffcf021a4534bd Jason Hoelscher-Obermaier 2017-03-22 09:50:15
Copy mechadd.mat (file with info reg. higher mechanical modes) to simulation output folder 595b486a19a22f66bedd754780cb38dac6d523e6 Jason Hoelscher-Obermaier 2017-03-17 15:53:03
Improve orthonormilsation b84ccfcaf4ec12a6136f954670d3147b406096eb corentin-gut 2017-03-17 14:59:20
Bug fix in method trace_out of entanglement_evaluation 84cd317f423b6b630298a2847b4f2fada16da8d1 Jason Hoelscher-Obermaier 2017-03-10 14:57:19
Check existence of target folder before attempting export in plot-methods 37fd86f5719898bd98c5c43114a54cec714f1bca Jason Hoelscher-Obermaier 2017-03-10 07:37:09
Add method trace_out to entanglement_evaluation 16ae2b0839d365791a3cb453156f28148eac3ff8 Jason Hoelscher-Obermaier 2017-03-08 18:38:07
Add options to plotLogneg.m 58b734d54c58bfb48573aadbd9c803b0eb7fd66a Jason Hoelscher-Obermaier 2017-03-06 12:29:49
Commit c108334ad59fd087cef91e002a992e50652dc6e4 - Refactor calibratePulsedCMs and trace_out
- extract common subfunctions calculate_log_neg, calculate_physicality, and get_shotnoise_ind
Author: Jason Hoelscher-Obermaier
Author date (UTC): 2017-03-28 11:56
Committer name: Jason Hoelscher-Obermaier
Committer date (UTC): 2017-03-28 11:57
Parent(s): 3658991dd37a657cad1a3aba5933a276b649fbd1
Signer:
Signing key:
Signing status: N
Tree: 391d9492e2b1f5eea2c35420d7b8aac2d505762e
File Lines added Lines deleted
data_analysis/@entanglement_evaluation/calculate_log_neg.m 14 0
data_analysis/@entanglement_evaluation/calculate_physicality.m 7 0
data_analysis/@entanglement_evaluation/calibratePulsedCMs.m 0 43
data_analysis/@entanglement_evaluation/get_shotnoise_ind.m 19 0
data_analysis/@entanglement_evaluation/trace_out.m 0 44
File data_analysis/@entanglement_evaluation/calculate_log_neg.m added (mode: 100644) (index 0000000..39d4c90)
1 function calculate_log_neg(obj, shotnoise_ind)
2 for p=1:obj.tracepairs_no
3 for g=1:obj.pulse_gammas_no
4 if p==shotnoise_ind
5 % no dual-homo correction needed for shotnoise
6 obj.logneg_corrected{p}{g} = logneg(...
7 obj.pulse_CM_calibrated{p}{g});
8 else
9 % dual-homo correction for log.negativity
10 obj.logneg_corrected{p}{g} = logneg(...
11 2*obj.pulse_CM_calibrated{p}{g}-obj.shotnoise_theory);
12 end
13 end
14 end
File data_analysis/@entanglement_evaluation/calculate_physicality.m added (mode: 100644) (index 0000000..7f83348)
1 function calculate_physicality(obj)
2 for p=1:obj.tracepairs_no
3 for g=1:obj.pulse_gammas_no
4 obj.pulse_CM_is_physical{p}{g} = isphyscov(...
5 obj.pulse_CM_calibrated{p}{g});
6 end
7 end
File data_analysis/@entanglement_evaluation/calibratePulsedCMs.m changed (mode: 100644) (index adc2c89..b71e416)
... ... function obj = calibratePulsedCMs(obj, varargin)
11 11 calculate_log_neg(obj, shotnoise_ind); calculate_log_neg(obj, shotnoise_ind);
12 12 calculate_physicality(obj); calculate_physicality(obj);
13 13
14 function shotnoise_ind = get_shotnoise_ind(obj, varargin)
15 shotnoise_ind = [];
16 for k=1:2:length(varargin)
17 switch varargin{k}
18 case 'shotnoise_ind'
19 shotnoise_ind = varargin{k+1};
20 otherwise
21 error(['Unrecognized varargin-argument ', varargin{k}]);
22 end
23 end
24
25 %% search for shotnoise among the data
26 if isempty(shotnoise_ind)
27 shotnoise_ind = find(obj.signal_power_muW(:,1)==0);
28 assert(length(shotnoise_ind) > 0,...
29 'Cannot find a set of shotnoise traces (ie one with signal_power_muW == 0)')
30 assert(length(shotnoise_ind) == 1,...
31 'Several sets of shotnoise traces found')
32 end
33
34 14 function pulse_CM_corr = correct_for_detection_imperfections(obj, shotnoise_ind) function pulse_CM_corr = correct_for_detection_imperfections(obj, shotnoise_ind)
35 15 eta = obj.detection_efficiency; eta = obj.detection_efficiency;
36 16 nu = obj.homodyne_visibility; nu = obj.homodyne_visibility;
 
... ... function calibrate_to_shotnoise(obj, pulse_CM_corrected, shotnoise_ind)
55 35 obj.pulse_CM_calibrated{p}{g} = calibrate_cm(cm_signal, cm_shot); obj.pulse_CM_calibrated{p}{g} = calibrate_cm(cm_signal, cm_shot);
56 36 end end
57 37 end end
58
59 function calculate_log_neg(obj, shotnoise_ind)
60 for p=1:obj.tracepairs_no
61 for g=1:obj.pulse_gammas_no
62 if p==shotnoise_ind
63 % no dual-homo correction needed for shotnoise
64 obj.logneg_corrected{p}{g} = logneg(...
65 obj.pulse_CM_calibrated{p}{g});
66 else
67 % dual-homo correction for log.negativity
68 obj.logneg_corrected{p}{g} = logneg(...
69 2*obj.pulse_CM_calibrated{p}{g}-obj.shotnoise_theory);
70 end
71 end
72 end
73
74 function calculate_physicality(obj)
75 for p=1:obj.tracepairs_no
76 for g=1:obj.pulse_gammas_no
77 obj.pulse_CM_is_physical{p}{g} = isphyscov(...
78 obj.pulse_CM_calibrated{p}{g});
79 end
80 end
File data_analysis/@entanglement_evaluation/get_shotnoise_ind.m added (mode: 100644) (index 0000000..f79ec39)
1 function shotnoise_ind = get_shotnoise_ind(obj, varargin)
2 shotnoise_ind = [];
3 for k=1:2:length(varargin)
4 switch varargin{k}
5 case 'shotnoise_ind'
6 shotnoise_ind = varargin{k+1};
7 otherwise
8 error(['Unrecognized varargin-argument ', varargin{k}]);
9 end
10 end
11
12 %% search for shotnoise among the data
13 if isempty(shotnoise_ind)
14 shotnoise_ind = find(obj.signal_power_muW(:,1)==0);
15 assert(length(shotnoise_ind) > 0,...
16 'Cannot find a set of shotnoise traces (i.e. one with signal_power_muW == 0)')
17 assert(length(shotnoise_ind) == 1,...
18 'Several sets of shotnoise traces found')
19 end
File data_analysis/@entanglement_evaluation/trace_out.m changed (mode: 100644) (index eafeef8..7f1d004)
... ... function ev_traced = trace_out(ev, modes_to_trace, varargin)
52 52 shotnoise_ind = get_shotnoise_ind(ev_traced, varargin{:}); shotnoise_ind = get_shotnoise_ind(ev_traced, varargin{:});
53 53 calculate_log_neg(ev_traced, shotnoise_ind); calculate_log_neg(ev_traced, shotnoise_ind);
54 54 calculate_physicality(ev_traced); calculate_physicality(ev_traced);
55
56
57 function calculate_log_neg(obj, shotnoise_ind)
58 for p=1:obj.tracepairs_no
59 for g=1:obj.pulse_gammas_no
60 if p==shotnoise_ind
61 % no dual-homo correction needed for shotnoise
62 obj.logneg_corrected{p}{g} = logneg(...
63 obj.pulse_CM_calibrated{p}{g});
64 else
65 % dual-homo correction for log.negativity
66 obj.logneg_corrected{p}{g} = logneg(...
67 2*obj.pulse_CM_calibrated{p}{g}-obj.shotnoise_theory);
68 end
69 end
70 end
71
72 function calculate_physicality(obj)
73 for p=1:obj.tracepairs_no
74 for g=1:obj.pulse_gammas_no
75 obj.pulse_CM_is_physical{p}{g} = isphyscov(...
76 obj.pulse_CM_calibrated{p}{g});
77 end
78 end
79
80 function shotnoise_ind = get_shotnoise_ind(obj, varargin)
81 shotnoise_ind = [];
82 for k=1:2:length(varargin)
83 switch varargin{k}
84 case 'shotnoise_ind'
85 shotnoise_ind = varargin{k+1};
86 otherwise
87 error(['Unrecognized varargin-argument ', varargin{k}]);
88 end
89 end
90
91 %% search for shotnoise among the data
92 if isempty(shotnoise_ind)
93 shotnoise_ind = find(obj.signal_power_muW(:,1)==0);
94 assert(length(shotnoise_ind) > 0,...
95 'Cannot find a set of shotnoise traces (ie one with signal_power_muW == 0)')
96 assert(length(shotnoise_ind) == 1,...
97 'Several sets of shotnoise traces found')
98 end
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/gutc61/Membrane

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/gutc61/Membrane

Clone this repository using git:
git clone git://git.rocketgit.com/user/gutc61/Membrane

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main