changeset 15:35af36fe0a35

dt error in MAP1_14 corrected
author Ray Meddis <rmeddis@essex.ac.uk>
date Mon, 06 Jun 2011 09:11:29 +0100
parents 51082e08b70b
children 37a379b27cff
files MAP/MAP1_14.m multithreshold 1.46/savedData/mostRecentResults.mat multithreshold 1.46/testAN.m parameterStore/MAPparamsEndo.m parameterStore/MAPparamsNormal.m testPrograms/hs_err_pid1016.log testPrograms/html/myConv.html testPrograms/html/myConv.png testPrograms/html/myConv_01.png testPrograms/html/myConv_02.png testPrograms/html/myConv_03.png testPrograms/html/myConv_04.png testPrograms/html/myConv_05.png testPrograms/html/myConv_06.png testPrograms/html/myConv_07.png testPrograms/html/myConv_08.png testPrograms/html/myConv_09.png testPrograms/html/myConv_10.png testPrograms/myConv.m testPrograms/showMAP.m testPrograms/test_MAP1_14.m
diffstat 21 files changed, 639 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- a/MAP/MAP1_14.m	Thu Jun 02 14:30:01 2011 +0100
+++ b/MAP/MAP1_14.m	Mon Jun 06 09:11:29 2011 +0100
@@ -83,7 +83,7 @@
 segmentTime=dt*(1:segmentLength); % used in debugging plots
 
 % all spiking activity is computed using longer epochs
-ANspeedUpFactor=5;  % 5 times longer
+ANspeedUpFactor=AN_IHCsynapseParams.ANspeedUpFactor;  % e.g.5 times
 
 % inputSignal must be  row vector
 [r c]=size(inputSignal);
@@ -443,10 +443,13 @@
 CNcurrentPerSpike=MacGregorMultiParams.currentPerSpike;
 CNspikeToCurrentTau=1/(2*pi*CNdendriteLPfreq);
 t=ANdt:ANdt:5*CNspikeToCurrentTau;
-CNalphaFunction=...
-    (CNcurrentPerSpike/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
+CNalphaFunction= (1 / ...
+    CNspikeToCurrentTau)*t.*exp(-t /CNspikeToCurrentTau);
+CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
+
 % figure(98), plot(t,CNalphaFunction)
 % working memory for implementing convolution
+
 CNcurrentTemp=...
     zeros(nCNneurons,reducedSegmentLength+length(CNalphaFunction)-1);
 % trailing alphas are parts of humps carried forward to the next segment
@@ -877,7 +880,7 @@
                 for idx=1:nCNneuronsPerChannel
                     % determine candidate fibers for this unit
                     fibersUsed=CNinputfiberLists(synapseNo,:);
-                    % ANpsth has a bin width of dt
+                    % ANpsth has a bin width of ANdt
                     %  (just a simple sum across fibers)
                     AN_PSTH(synapseNo,:) = ...
                         sum(ANspikes(fibersUsed,:), 1);
@@ -892,12 +895,14 @@
                 CNcurrentTemp(unitNo,:)= ...
                     conv(AN_PSTH(unitNo,:),CNalphaFunction);
             end
+%             disp(['sum(AN_PSTH)= ' num2str(sum(AN_PSTH(1,:)))])
             % add post-synaptic current  left over from previous segment
             CNcurrentTemp(:,1:alphaCols)=...
                 CNcurrentTemp(:,1:alphaCols)+ CNtrailingAlphas;
 
             % take post-synaptic current for this segment
             CNcurrentInput= CNcurrentTemp(:, 1:reducedSegmentLength);
+%                 disp(['mean(CNcurrentInput)= ' num2str(mean(CNcurrentInput(1,:)))])
 
             % trailingalphas are the ends of the alpha functions that
             % spill over into the next segment
@@ -907,13 +912,14 @@
             if CN_c>0
                 % variable threshold condition (slow)
                 for t=1:reducedSegmentLength
-                    CNtimeSinceLastSpike=CNtimeSinceLastSpike-dts;
+                    CNtimeSinceLastSpike=CNtimeSinceLastSpike-ANdt;
                     s=CN_E>CN_Th & CNtimeSinceLastSpike<0 ;
                     CNtimeSinceLastSpike(s)=0.0005;         % 0.5 ms for sodium spike
                     dE =(-CN_E/CN_tauM + ...
-                        CNcurrentInput(:,t)/CN_cap+(CN_Gk/CN_cap).*(CN_Ek-CN_E))*dt;
-                    dGk=-CN_Gk*dt./tauGk + CN_b*s;
-                    dTh=-(CN_Th-CN_Th0)*dt/CN_tauTh + CN_c*s;
+                        CNcurrentInput(:,t)/CN_cap+(...
+                        CN_Gk/CN_cap).*(CN_Ek-CN_E))*ANdt;
+                    dGk=-CN_Gk*ANdt./tauGk + CN_b*s;
+                    dTh=-(CN_Th-CN_Th0)*ANdt/CN_tauTh + CN_c*s;
                     CN_E=CN_E+dE;
                     CN_Gk=CN_Gk+dGk;
                     CN_Th=CN_Th+dTh;
@@ -921,30 +927,48 @@
                 end
             else
                 % static threshold (faster)
+                E=zeros(1,reducedSegmentLength);
+                Gk=zeros(1,reducedSegmentLength);
+                ss=zeros(1,reducedSegmentLength);
                 for t=1:reducedSegmentLength
-                    CNtimeSinceLastSpike=CNtimeSinceLastSpike-dt;
-                    s=CN_E>CN_Th0 & CNtimeSinceLastSpike<0 ;  % =1 if both conditions met
-                    CNtimeSinceLastSpike(s)=0.0005;          % 0.5 ms for sodium spike
+                    % time of previous spike moves back in time
+                    CNtimeSinceLastSpike=CNtimeSinceLastSpike-ANdt;
+                    % action potential if E>threshold
+                    %  allow time for s to reset between events
+                    s=CN_E>CN_Th0 & CNtimeSinceLastSpike<0 ;  
+                    ss(t)=s(1);
+                    CNtimeSinceLastSpike(s)=0.0005; % 0.5 ms for sodium spike
                     dE = (-CN_E/CN_tauM + ...
-                        CNcurrentInput(:,t)/CN_cap+(CN_Gk/CN_cap).*(CN_Ek-CN_E))*dt;
-                    dGk=-CN_Gk*dt./tauGk +CN_b*s;
+                        CNcurrentInput(:,t)/CN_cap +...
+                        (CN_Gk/CN_cap).*(CN_Ek-CN_E))*ANdt;
+                    dGk=-CN_Gk*ANdt./tauGk +CN_b*s;
                     CN_E=CN_E+dE;
                     CN_Gk=CN_Gk+dGk;
+                    E(t)=CN_E(1);
+                    Gk(t)=CN_Gk(1);
                     % add spike to CN_E and add resting potential (-60 mV)
-                    CNmembranePotential(:,t)=CN_E+s.*(CN_Eb-CN_E)+CN_Er;
+                    CNmembranePotential(:,t)=CN_E +s.*(CN_Eb-CN_E)+CN_Er;
                 end
             end
+%             disp(['CN_E= ' num2str(sum(CN_E(1,:)))])
+%             disp(['CN_Gk= ' num2str(sum(CN_Gk(1,:)))])
+%             disp(['CNmembranePotential= ' num2str(sum(CNmembranePotential(1,:)))])
+%             plot(CNmembranePotential(1,:))
+
 
             % extract spikes.  A spike is a substantial upswing in voltage
-            CN_spikes=CNmembranePotential> -0.01;
+            CN_spikes=CNmembranePotential> -0.02;
+%             disp(['CNspikesbefore= ' num2str(sum(sum(CN_spikes)))])
 
             % now remove any spike that is immediately followed by a spike
             % NB 'find' works on columns (whence the transposing)
+            % for each spike put a zero in the next epoch
             CN_spikes=CN_spikes';
             idx=find(CN_spikes);
             idx=idx(1:end-1);
             CN_spikes(idx+1)=0;
             CN_spikes=CN_spikes';
+%             disp(['CNspikes= ' num2str(sum(sum(CN_spikes)))])
 
             % segment debugging
             % plotInstructions.figureNo=98;
@@ -988,8 +1012,8 @@
                     for t=1:reducedSegmentLength
                         s=IC_E>IC_Th0;
                         dE = (-IC_E/IC_tauM + inputCurrent(:,t)/IC_cap +...
-                            (IC_Gk/IC_cap).*(IC_Ek-IC_E))*dt;
-                        dGk=-IC_Gk*dt/IC_tauGk +IC_b*s;
+                            (IC_Gk/IC_cap).*(IC_Ek-IC_E))*ANdt;
+                        dGk=-IC_Gk*ANdt/IC_tauGk +IC_b*s;
                         IC_E=IC_E+dE;
                         IC_Gk=IC_Gk+dGk;
                         ICmembranePotential(:,t)=IC_E+s.*(IC_Eb-IC_E)+IC_Er;
@@ -999,16 +1023,16 @@
                     for t=1:reducedSegmentLength
                         dE = (-IC_E/IC_tauM + ...
                             inputCurrent(:,t)/IC_cap + (IC_Gk/IC_cap)...
-                            .*(IC_Ek-IC_E))*dt;
+                            .*(IC_Ek-IC_E))*ANdt;
                         IC_E=IC_E+dE;
                         s=IC_E>IC_Th;
                         ICmembranePotential(:,t)=IC_E+s.*(IC_Eb-IC_E)+IC_Er;
-                        dGk=-IC_Gk*dt/IC_tauGk +IC_b*s;
+                        dGk=-IC_Gk*ANdt/IC_tauGk +IC_b*s;
                         IC_Gk=IC_Gk+dGk;
 
                         % After a spike, the threshold is raised
                         % otherwise it settles to its baseline
-                        dTh=-(IC_Th-Th0)*dt/IC_tauTh +s*IC_c;
+                        dTh=-(IC_Th-Th0)*ANdt/IC_tauTh +s*IC_c;
                         IC_Th=IC_Th+dTh;
                     end
                 end
@@ -1027,6 +1051,7 @@
                 lastCell=nCellsPerTau;
                 for tauCount=1:nANfiberTypes
                     % separate rates according to fiber types
+                    % currently only the last segment is saved
                     ICfiberTypeRates(tauCount, ...
                         reducedSegmentPTR:shorterSegmentEndPTR)=...
                         sum(ICspikes(firstCell:lastCell, :))...
@@ -1034,13 +1059,16 @@
                     firstCell=firstCell+nCellsPerTau;
                     lastCell=lastCell+nCellsPerTau;
                 end
-                ICoutput(:, reducedSegmentPTR:shorterSegmentEndPTR)=ICspikes;
-
+                
+                ICoutput(:,reducedSegmentPTR:shorterSegmentEndPTR)=ICspikes;
+                
+                % store membrane output on original dt scale
                 if nBFs==1  % single channel
                     x= repmat(ICmembranePotential(1,:), ANspeedUpFactor,1);
                     x= reshape(x,1,segmentLength);
                     if nANfiberTypes>1  % save HSR and LSR
-                        y= repmat(ICmembranePotential(end,:), ANspeedUpFactor,1);
+                        y=repmat(ICmembranePotential(end,:),...
+                            ANspeedUpFactor,1);
                         y= reshape(y,1,segmentLength);
                         x=[x; y];
                     end
Binary file multithreshold 1.46/savedData/mostRecentResults.mat has changed
--- a/multithreshold 1.46/testAN.m	Thu Jun 02 14:30:01 2011 +0100
+++ b/multithreshold 1.46/testAN.m	Mon Jun 06 09:11:29 2011 +0100
@@ -6,6 +6,9 @@
 global IHC_VResp_VivoParams  IHC_cilia_RPParams IHCpreSynapseParams
 global AN_IHCsynapseParams
 
+    global ANoutput ANdt CNoutput ICoutput ICmembraneOutput tauCas
+    global ARattenuation MOCattenuation
+
 dbstop if error
 
 addpath (['..' filesep 'MAP'], ['..' filesep 'utilities'], ...
@@ -47,7 +50,6 @@
 set(gcf,'position',[980   356   401   321])
 figure(5), clf
 set(gcf,'position', [980 34 400 295])
-set(gcf,'name',[num2str(BFlist), ' Hz']);
 drawnow
 
 %% guarantee that the sample rate is at least 10 times the frequency
@@ -93,8 +95,6 @@
     MAPparamsName=experiment.name;
     showPlotsAndDetails=0;
 
-    global ANoutput ANdt CNoutput ICoutput ICmembraneOutput tauCas
-    global ARattenuation MOCattenuation
 
     MAP1_14(inputSignal, 1/dt, BFlist, ...
         MAPparamsName, AN_spikesOrProbability);
@@ -127,6 +127,7 @@
     hold on,  bar(PSTHtime,PSTHLSR,'r')
     ylim([0 1000])
     xlim([0 length(PSTH)*localPSTHbinwidth])
+    set(gcf,'name',[num2str(BFlist), ' Hz: ' num2str(leveldB) ' dB']);
 
     % AN - CV
     %  CV is computed 5 times. Use the middle one (3) as most typical
@@ -188,7 +189,7 @@
     AR(levelNo)=min(ARattenuation);
     MOC(levelNo)=min(MOCattenuation(length(MOCattenuation)/2:end));
 
-    time=ANdt:ANdt:ANdt*size(ICmembraneOutput,2);
+    time=dt:dt:dt*size(ICmembraneOutput,2);
     figure(5), subplot(2,2,4)
     plot(time,ICmembraneOutput(2, 1:end),'k')
     ylim([-0.07 0])
--- a/parameterStore/MAPparamsEndo.m	Thu Jun 02 14:30:01 2011 +0100
+++ b/parameterStore/MAPparamsEndo.m	Mon Jun 06 09:11:29 2011 +0100
@@ -130,13 +130,13 @@
 IHC_cilia_RPParams.u1=	1e-9;
 IHC_cilia_RPParams.s1=	1e-9;
 
-IHC_cilia_RPParams.Gmax= 5e-9;    % 2.5e-9 maximum conductance (Siemens)
-IHC_cilia_RPParams.Ga=	1e-9;  % 4.3e-9 fixed apical membrane conductance
+IHC_cilia_RPParams.Gmax= 5e-9;      % 2.5e-9 maximum conductance (Siemens)
+IHC_cilia_RPParams.Ga=	1e-9;       % 4.3e-9 fixed apical membrane conductance
 
 %  #5 IHC_RP
 IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
 IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
-% IHC_cilia_RPParams.Et=	0.100;          % endocochlear potential (V)
+IHC_cilia_RPParams.Et=	0.100;          % endocochlear potential (V)
 IHC_cilia_RPParams.Et=	0.07;          % endocochlear potential (V)
 
 IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
@@ -183,6 +183,8 @@
 AN_IHCsynapseParams.numFibers=	100; 
 AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
 
+AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
+
 %%  #7 MacGregorMulti (first order brainstem neurons)
 MacGregorMultiParams=[];
 MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
@@ -212,13 +214,13 @@
 
         MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
         MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
-%         MacGregorMultiParams.currentPerSpike=45e-9; % *per spike
+        MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
         
         MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
         MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
         MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
         MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
-        MacGregorMultiParams.tauGk=	0.0001;% K+ conductance tau (s)
+        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
         MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
         MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
         MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
@@ -233,12 +235,13 @@
 MacGregorParams.fibersPerNeuron=10; % N input fibers
 MacGregorParams.dendriteLPfreq=100; % dendritic filter
 MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
+MacGregorParams.currentPerSpike=30e-9;% *(A) per spike
 
 MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
 MacGregorParams.tauM=0.002;         % membrane time constant (s)
 MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
 MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
-MacGregorParams.tauGk=	0.0003;     % K+ conductance tau (s)
+MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
 MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
 MacGregorParams.c=	0;              % threshold shift on spike, (V)
 MacGregorParams.tauTh=	0.02;       % variable threshold tau
--- a/parameterStore/MAPparamsNormal.m	Thu Jun 02 14:30:01 2011 +0100
+++ b/parameterStore/MAPparamsNormal.m	Mon Jun 06 09:11:29 2011 +0100
@@ -137,7 +137,7 @@
 IHC_cilia_RPParams.Cab=	4e-012;         % IHC capacitance (F)
 IHC_cilia_RPParams.Cab=	1e-012;         % IHC capacitance (F)
 IHC_cilia_RPParams.Et=	0.100;          % endocochlear potential (V)
-% IHC_cilia_RPParams.Et=	0.07;          % endocochlear potential (V)
+IHC_cilia_RPParams.Et=	0.07;          % endocochlear potential (V)
 
 IHC_cilia_RPParams.Gk=	2e-008;         % 1e-8 potassium conductance (S)
 IHC_cilia_RPParams.Ek=	-0.08;          % -0.084 K equilibrium potential
@@ -183,6 +183,8 @@
 AN_IHCsynapseParams.numFibers=	100; 
 AN_IHCsynapseParams.TWdelay=0.004;  % ?delay before stimulus first spike
 
+AN_IHCsynapseParams.ANspeedUpFactor=5; % longer epochs for computing spikes.
+
 %%  #7 MacGregorMulti (first order brainstem neurons)
 MacGregorMultiParams=[];
 MacGregorMultiType='chopper'; % MacGregorMultiType='primary-like'; %choose
@@ -212,13 +214,13 @@
 
         MacGregorMultiParams.dendriteLPfreq=50;   % dendritic filter
         MacGregorMultiParams.currentPerSpike=35e-9; % *per spike
-%         MacGregorMultiParams.currentPerSpike=45e-9; % *per spike
+        MacGregorMultiParams.currentPerSpike=30e-9; % *per spike
         
         MacGregorMultiParams.Cap=1.67e-8; % ??cell capacitance (Siemens)
         MacGregorMultiParams.tauM=0.002;  % membrane time constant (s)
         MacGregorMultiParams.Ek=-0.01;    % K+ eq. potential (V)
         MacGregorMultiParams.dGkSpike=1.33e-4; % K+ cond.shift on spike,S
-        MacGregorMultiParams.tauGk=	0.0001;% K+ conductance tau (s)
+        MacGregorMultiParams.tauGk=	0.0005;% K+ conductance tau (s)
         MacGregorMultiParams.Th0=	0.01; % equilibrium threshold (V)
         MacGregorMultiParams.c=	0;        % threshold shift on spike, (V)
         MacGregorMultiParams.tauTh=	0.02; % variable threshold tau
@@ -233,12 +235,13 @@
 MacGregorParams.fibersPerNeuron=10; % N input fibers
 MacGregorParams.dendriteLPfreq=100; % dendritic filter
 MacGregorParams.currentPerSpike=120e-9;% *(A) per spike
+MacGregorParams.currentPerSpike=30e-9;% *(A) per spike
 
 MacGregorParams.Cap=16.7e-9;        % cell capacitance (Siemens)
 MacGregorParams.tauM=0.002;         % membrane time constant (s)
 MacGregorParams.Ek=-0.01;           % K+ eq. potential (V)
 MacGregorParams.dGkSpike=1.33e-4;   % K+ cond.shift on spike,S
-MacGregorParams.tauGk=	0.0003;     % K+ conductance tau (s)
+MacGregorParams.tauGk=	0.0005;     % K+ conductance tau (s)
 MacGregorParams.Th0=	0.01;       % equilibrium threshold (V)
 MacGregorParams.c=	0;              % threshold shift on spike, (V)
 MacGregorParams.tauTh=	0.02;       % variable threshold tau
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testPrograms/hs_err_pid1016.log	Mon Jun 06 09:11:29 2011 +0100
@@ -0,0 +1,300 @@
+#
+# An unexpected error has been detected by Java Runtime Environment:
+#
+#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000000fef5110, pid=1016, tid=6396
+#
+# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.6.0-b105 mixed mode)
+# Problematic frame:
+# C  [awt.dll+0x185110]
+#
+# If you would like to submit a bug report, please visit:
+#   http://java.sun.com/webapps/bugreport/crash.jsp
+#
+
+---------------  T H R E A D  ---------------
+
+Current thread (0x000000001181c800):  JavaThread "AWT-EventQueue-0" [_thread_in_native, id=6396]
+
+siginfo: ExceptionCode=0xc0000005, reading address 0xffffffffffffffff
+
+Registers:
+EAX=0x800000ea47fdfdc2, EBX=0x0000000000000001, ECX=0x00000000111de260, EDX=0x0000000011238318
+ESP=0x00000000309cdb80, EBP=0x000000000e690f00, ESI=0x000000001181c990, EDI=0x0000000000000000
+EIP=0x000000000fef5110, EFLAGS=0x0000000000010202
+
+Top of Stack: (sp=0x00000000309cdb80)
+0x00000000309cdb80:   000000001181c800 0000000000000000
+0x00000000309cdb90:   00000000309cdcd0 0000000015dfd008
+0x00000000309cdba0:   0000000000000001 000000000fef6dd3
+0x00000000309cdbb0:   0000000000000001 000000000e690f00
+0x00000000309cdbc0:   000000001181c990 0000000000000000
+0x00000000309cdbd0:   0000000011238318 00000000169b9f50
+0x00000000309cdbe0:   0000000000000004 00000000152cd810
+0x00000000309cdbf0:   0000000000000000 0000000000000000
+0x00000000309cdc00:   0000000000000001 0000000000000102
+0x00000000309cdc10:   00000000122a308e 0000000000000001
+0x00000000309cdc20:   00000000309cdca8 00000000122afc24
+0x00000000309cdc30:   0000000000000000 0000000026cb7e80
+0x00000000309cdc40:   0000000000000000 0000000015dfd008
+0x00000000309cdc50:   0000000000000001 0000000000000000
+0x00000000309cdc60:   00000000309cdc50 00000000309cdc68
+0x00000000309cdc70:   0000000000000000 00000000309cdcd0 
+
+Instructions: (pc=0x000000000fef5110)
+0x000000000fef5100:   e8 5b 72 f9 ff 48 8b 0d 04 9a 08 00 48 8b 04 d8
+0x000000000fef5110:   48 8b 58 30 e8 67 72 f9 ff 48 8b c3 48 83 c4 20 
+
+
+Stack: [0x0000000030950000,0x00000000309d0000),  sp=0x00000000309cdb80,  free space=502k
+Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
+C  [awt.dll+0x185110]
+
+Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
+j  sun.awt.Win32GraphicsConfig.getBounds(I)Ljava/awt/Rectangle;+0
+j  sun.awt.Win32GraphicsConfig.getBounds()Ljava/awt/Rectangle;+8
+j  com.mathworks.mwswing.WindowUtils.getVirtualScreenBounds()Ljava/awt/Rectangle;+98
+j  com.mathworks.mwswing.MJUtilities.getVirtualScreenBounds()Ljava/awt/Rectangle;+0
+j  com.mathworks.mwswing.desk.DTSingleClientFrame.refineLocation(Lcom/mathworks/mwswing/desk/DTLocation;)Lcom/mathworks/mwswing/desk/DTFloatingLocation;+495
+j  com.mathworks.mwswing.desk.DTSingleClientFrame.addClient(Lcom/mathworks/mwswing/desk/DTClient;Lcom/mathworks/mwswing/desk/DTLocation;)V+297
+j  com.mathworks.mwswing.desk.Desktop.setClientShowing(Lcom/mathworks/mwswing/desk/DTClient;ZLcom/mathworks/mwswing/desk/DTLocation;ZZ)V+956
+j  com.mathworks.mwswing.desk.Desktop.setClientShowing(Lcom/mathworks/mwswing/desk/DTClient;ZLcom/mathworks/mwswing/desk/DTLocation;Z)V+7
+j  com.mathworks.mwswing.desk.Desktop.addClient(Ljava/awt/Component;Ljava/lang/String;ZLcom/mathworks/mwswing/desk/DTLocation;ZLcom/mathworks/mwswing/desk/DTClientListener;)V+314
+j  com.mathworks.mde.desk.MLDesktop.addClient(Ljava/awt/Component;Ljava/lang/String;ZLcom/mathworks/mwswing/desk/DTLocation;ZLcom/mathworks/mwswing/desk/DTClientListener;)V+40
+j  com.mathworks.mde.help.HelpBrowser.createHelpBrowser(Z)Lcom/mathworks/mde/help/HelpBrowser;+90
+j  com.mathworks.mde.help.HelpBrowserRegistrar.getHelpBrowser(Z)Lcom/mathworks/mlservices/MLHelpBrowser;+1
+v  ~StubRoutines::call_stub
+j  sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
+j  sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
+J  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
+j  com.mathworks.mlservices.MLHelpServices.getRegisteredService(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/Object;+71
+j  com.mathworks.mlservices.MLHelpServices.instantiateHelpBrowser(Z)Lcom/mathworks/mlservices/MLHelpBrowser;+12
+j  com.mathworks.mlservices.MLHelpServices.invoke()V+1
+j  com.mathworks.mde.desk.MLDesktop$ShowHelpAction.actionPerformed(Ljava/awt/event/ActionEvent;)V+0
+j  javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
+j  javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
+j  javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
+j  javax.swing.DefaultButtonModel.setPressed(Z)V+117
+j  javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
+j  java.awt.AWTEventMulticaster.mouseReleased(Ljava/awt/event/MouseEvent;)V+8
+j  java.awt.AWTEventMulticaster.mouseReleased(Ljava/awt/event/MouseEvent;)V+8
+j  java.awt.AWTEventMulticaster.mouseReleased(Ljava/awt/event/MouseEvent;)V+8
+j  java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
+j  javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
+j  com.mathworks.mwswing.MJButton.processMouseEvent(Ljava/awt/event/MouseEvent;)V+37
+j  java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
+j  java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
+j  java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+562
+j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
+J  java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V
+j  java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
+j  java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
+j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
+j  java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19
+J  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z
+J  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V
+j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
+j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
+j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
+j  java.awt.EventDispatchThread.run()V+9
+v  ~StubRoutines::call_stub
+
+---------------  P R O C E S S  ---------------
+
+Java Threads: ( => current thread )
+  0x0000000030c4a800 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=2956]
+  0x0000000030c47c00 JavaThread "Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]" daemon [_thread_blocked, id=2312]
+  0x0000000030c4a000 JavaThread "Thread-410" [_thread_blocked, id=3948]
+  0x0000000030c4b800 JavaThread "Timer-8" [_thread_blocked, id=7832]
+  0x0000000030c49800 JavaThread "Thread-94" [_thread_blocked, id=1800]
+  0x0000000030c49400 JavaThread "Thread-20" [_thread_blocked, id=3944]
+  0x0000000030c48400 JavaThread "Prefs Updater" [_thread_blocked, id=6592]
+  0x0000000030c47800 JavaThread "Thread-7" [_thread_blocked, id=6296]
+  0x0000000030c47000 JavaThread "Active Reference Queue Daemon" daemon [_thread_blocked, id=3096]
+  0x0000000030c46800 JavaThread "Timer-3" daemon [_thread_blocked, id=4900]
+  0x0000000030c46000 JavaThread "Timer-2" daemon [_thread_blocked, id=6248]
+  0x0000000011809400 JavaThread "TimerQueue" daemon [_thread_blocked, id=2784]
+=>0x000000001181c800 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=6396]
+  0x000000001179b800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=4168]
+  0x0000000011799000 JavaThread "AWT-Shutdown" [_thread_blocked, id=5348]
+  0x0000000011798800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1520]
+  0x000000000fb14800 JavaThread "Timer-0" [_thread_blocked, id=2516]
+  0x000000000fa83c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=6708]
+  0x000000000fa81800 JavaThread "CompilerThread1" daemon [_thread_blocked, id=7064]
+  0x000000000fa75800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=6704]
+  0x000000000fa74400 JavaThread "Attach Listener" daemon [_thread_blocked, id=5696]
+  0x000000000fa57000 JavaThread "Finalizer" daemon [_thread_blocked, id=5540]
+  0x000000000fa56400 JavaThread "Reference Handler" daemon [_thread_blocked, id=1012]
+  0x0000000003d2fc00 JavaThread "main" [_thread_in_native, id=6784]
+
+Other Threads:
+  0x000000000fa52400 VMThread [id=4948]
+  0x000000000fa89400 WatcherThread [id=1092]
+
+VM state:not at safepoint (normal execution)
+
+VM Mutex/Monitor currently owned by a thread: None
+
+Heap
+ PSYoungGen      total 7488K, used 7456K [0x00000000265a0000, 0x0000000027080000, 0x00000000296a0000)
+  eden space 7296K, 100% used [0x00000000265a0000,0x0000000026cc0000,0x0000000026cc0000)
+  from space 192K, 83% used [0x0000000026ce0000,0x0000000026d08000,0x0000000026d10000)
+  to   space 1920K, 0% used [0x0000000026ea0000,0x0000000026ea0000,0x0000000027080000)
+ PSOldGen        total 45376K, used 35394K [0x000000001d2a0000, 0x000000001fef0000, 0x00000000265a0000)
+  object space 45376K, 78% used [0x000000001d2a0000,0x000000001f530b20,0x000000001fef0000)
+ PSPermGen       total 83392K, used 45466K [0x00000000152a0000, 0x000000001a410000, 0x000000001d2a0000)
+  object space 83392K, 54% used [0x00000000152a0000,0x0000000017f069f0,0x000000001a410000)
+
+Dynamic libraries:
+0x0000000140000000 - 0x0000000140138000 	C:\Program Files\MATLAB\R2008a\bin\win64\MATLAB.exe
+0x0000000076d20000 - 0x0000000076ec9000 	C:\Windows\SYSTEM32\ntdll.dll
+0x0000000076b00000 - 0x0000000076c1f000 	C:\Windows\system32\kernel32.dll
+0x000007fefcd20000 - 0x000007fefcd8b000 	C:\Windows\system32\KERNELBASE.dll
+0x0000000180000000 - 0x0000000180401000 	C:\Program Files\MATLAB\R2008a\bin\win64\libut.dll
+0x000007fefdd40000 - 0x000007fefdd57000 	C:\Windows\system32\imagehlp.dll
+0x000007fefdfb0000 - 0x000007fefe04f000 	C:\Windows\system32\msvcrt.dll
+0x0000000076ef0000 - 0x0000000076ef7000 	C:\Windows\system32\PSAPI.DLL
+0x00000000011f0000 - 0x0000000001218000 	C:\Program Files\MATLAB\R2008a\bin\win64\LIBEXPAT.dll
+0x0000000073330000 - 0x00000000733f9000 	C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.5592_none_88e45feb2faab9ce\MSVCR80.dll
+0x000000004a800000 - 0x000000004a917000 	C:\Program Files\MATLAB\R2008a\bin\win64\icuuc36.dll
+0x000007fefef50000 - 0x000007feff02b000 	C:\Windows\system32\ADVAPI32.dll
+0x000007fefd940000 - 0x000007fefd95f000 	C:\Windows\SYSTEM32\sechost.dll
+0x000007fefe050000 - 0x000007fefe17d000 	C:\Windows\system32\RPCRT4.dll
+0x0000000001220000 - 0x0000000001223000 	C:\Program Files\MATLAB\R2008a\bin\win64\icudt36.dll
+0x000000004ab00000 - 0x000000004ab0f000 	C:\Program Files\MATLAB\R2008a\bin\win64\icuio36.dll
+0x0000000001250000 - 0x0000000001356000 	C:\Program Files\MATLAB\R2008a\bin\win64\icuin36.dll
+0x0000000071c30000 - 0x0000000071d39000 	C:\Windows\WinSxS\amd64_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.5592_none_88e45feb2faab9ce\MSVCP80.dll
+0x0000000076c20000 - 0x0000000076d1a000 	C:\Windows\system32\USER32.dll
+0x000007fefd1c0000 - 0x000007fefd227000 	C:\Windows\system32\GDI32.dll
+0x000007fefd150000 - 0x000007fefd15e000 	C:\Windows\system32\LPK.dll
+0x000007fefd870000 - 0x000007fefd939000 	C:\Windows\system32\USP10.dll
+0x0000000001370000 - 0x00000000014e4000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwservices.dll
+0x0000000001500000 - 0x0000000001570000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmx.dll
+0x0000000001580000 - 0x0000000001597000 	C:\Program Files\MATLAB\R2008a\bin\win64\zlib1.dll
+0x00000000015a0000 - 0x0000000001648000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwmathutil.dll
+0x0000000001660000 - 0x00000000016b5000 	C:\Program Files\MATLAB\R2008a\bin\win64\mpath.dll
+0x00000000016d0000 - 0x00000000016f1000 	C:\Program Files\MATLAB\R2008a\bin\win64\mlutil.dll
+0x000007fef9110000 - 0x000007fef91b0000 	C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_a4d6a923711520a9\COMCTL32.dll
+0x000007fefde30000 - 0x000007fefdec7000 	C:\Windows\system32\comdlg32.dll
+0x000007fefdcc0000 - 0x000007fefdd31000 	C:\Windows\system32\SHLWAPI.dll
+0x000007fefe180000 - 0x000007fefef08000 	C:\Windows\system32\SHELL32.dll
+0x000007fefc100000 - 0x000007fefc116000 	C:\Windows\system32\NETAPI32.dll
+0x000007fefc0f0000 - 0x000007fefc0fc000 	C:\Windows\system32\netutils.dll
+0x000007fefc7c0000 - 0x000007fefc7e3000 	C:\Windows\system32\srvcli.dll
+0x000007fefc140000 - 0x000007fefc155000 	C:\Windows\system32\wkscli.dll
+0x000007fefdd60000 - 0x000007fefddad000 	C:\Windows\system32\WS2_32.dll
+0x000007fefef40000 - 0x000007fefef48000 	C:\Windows\system32\NSI.dll
+0x0000000001710000 - 0x0000000001765000 	C:\Program Files\MATLAB\R2008a\bin\win64\mcr.dll
+0x0000000001780000 - 0x00000000017a5000 	C:\Program Files\MATLAB\R2008a\bin\win64\iqm.dll
+0x00000000017c0000 - 0x00000000017e1000 	C:\Program Files\MATLAB\R2008a\bin\win64\bridge.dll
+0x0000000001800000 - 0x0000000001811000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmex.dll
+0x0000000001830000 - 0x00000000018bc000 	C:\Program Files\MATLAB\R2008a\bin\win64\m_dispatcher.dll
+0x00000000018d0000 - 0x00000000018f5000 	C:\Program Files\MATLAB\R2008a\bin\win64\datasvcs.dll
+0x0000000012000000 - 0x0000000012295000 	C:\Program Files\MATLAB\R2008a\bin\win64\xerces-c_2_7.dll
+0x0000000001920000 - 0x00000000021b1000 	C:\Program Files\MATLAB\R2008a\bin\win64\m_interpreter.dll
+0x00000000021d0000 - 0x0000000002201000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmat.dll
+0x0000000002220000 - 0x0000000002325000 	C:\Program Files\MATLAB\R2008a\bin\win64\libhdf5.dll
+0x0000000002330000 - 0x000000000239f000 	C:\Program Files\MATLAB\R2008a\bin\win64\profiler.dll
+0x00000000023b0000 - 0x00000000023ba000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwmathrng.dll
+0x00000000023d0000 - 0x00000000023ea000 	C:\Program Files\MATLAB\R2008a\bin\win64\m_pcodeio.dll
+0x0000000002400000 - 0x000000000244a000 	C:\Program Files\MATLAB\R2008a\bin\win64\m_ir.dll
+0x0000000002460000 - 0x0000000002a1b000 	C:\Program Files\MATLAB\R2008a\bin\win64\m_parser.dll
+0x0000000002a30000 - 0x0000000002a42000 	C:\Program Files\MATLAB\R2008a\bin\win64\ir_xfmr.dll
+0x0000000002a60000 - 0x0000000002c7b000 	C:\Program Files\MATLAB\R2008a\bin\win64\mcos.dll
+0x0000000002c90000 - 0x0000000002c9c000 	C:\Program Files\MATLAB\R2008a\bin\win64\mtok.dll
+0x0000000002cb0000 - 0x0000000002cd0000 	C:\Program Files\MATLAB\R2008a\bin\win64\m_pcodegen.dll
+0x000007fef4250000 - 0x000007fef4375000 	C:\Windows\system32\dbghelp.dll
+0x0000000002ce0000 - 0x0000000002cf0000 	C:\Program Files\MATLAB\R2008a\bin\win64\boost_thread-vc80-mt-1_34_1.dll
+0x0000000002d00000 - 0x0000000002dc0000 	C:\Program Files\MATLAB\R2008a\bin\win64\udd.dll
+0x0000000002dd0000 - 0x0000000002f12000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwgui.dll
+0x0000000002f30000 - 0x000000000316a000 	C:\Program Files\MATLAB\R2008a\bin\win64\hg.dll
+0x0000000003180000 - 0x00000000031d6000 	C:\Program Files\MATLAB\R2008a\bin\win64\jmi.dll
+0x00000000031f0000 - 0x000000000322e000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwhardcopy.dll
+0x0000000003240000 - 0x000000000329c000 	C:\Program Files\MATLAB\R2008a\bin\win64\libuij.dll
+0x00000000032b0000 - 0x000000000353c000 	C:\Program Files\MATLAB\R2008a\bin\win64\numerics.dll
+0x0000000003550000 - 0x000000000355c000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwblas.dll
+0x0000000003570000 - 0x000000000357f000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwbinder.dll
+0x0000000003590000 - 0x00000000035b4000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwlapack.dll
+0x00000000035d0000 - 0x00000000035db000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwfftw.dll
+0x00000000035f0000 - 0x0000000003625000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwrookfastbp.dll
+0x0000000003640000 - 0x000000000366e000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwma57.dll
+0x0000000010000000 - 0x00000000100d3000 	C:\Program Files\MATLAB\R2008a\bin\win64\libifcoremd.dll
+0x0000000003680000 - 0x000000000389d000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmmd.dll
+0x00000000038a0000 - 0x00000000038a9000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwcsparse.dll
+0x00000000038c0000 - 0x000000000398a000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwumfpack.dll
+0x00000000039a0000 - 0x00000000039ad000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwamd.dll
+0x00000000039c0000 - 0x0000000003a52000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwcholmod.dll
+0x0000000003a70000 - 0x0000000003a7c000 	C:\Program Files\MATLAB\R2008a\bin\win64\libmwcolamd.dll
+0x0000000003a90000 - 0x0000000003b49000 	C:\Program Files\MATLAB\R2008a\bin\win64\uiw.dll
+0x0000000003b60000 - 0x0000000003b6a000 	C:\Program Files\MATLAB\R2008a\bin\win64\uinone.dll
+0x000000006e030000 - 0x000000006e1cc000 	C:\Windows\WinSxS\amd64_microsoft.vc80.mfc_1fc8b3b9a1e18e3b_8.0.50727.5592_none_8448f49f328da8c3\MFC80.DLL
+0x000007fefaf90000 - 0x000007fefb001000 	C:\Windows\system32\WINSPOOL.DRV
+0x000007fefd230000 - 0x000007fefd433000 	C:\Windows\system32\ole32.dll
+0x000007fefded0000 - 0x000007fefdfa7000 	C:\Windows\system32\OLEAUT32.dll
+0x0000000003b80000 - 0x0000000003c10000 	C:\Program Files\MATLAB\R2008a\bin\win64\udd_mi.dll
+0x0000000003c20000 - 0x0000000003c38000 	C:\Program Files\MATLAB\R2008a\bin\win64\mwoles05.DLL
+0x0000000003c50000 - 0x0000000003cb9000 	C:\Program Files\MATLAB\R2008a\bin\win64\comcli.dll
+0x0000000071c10000 - 0x0000000071c30000 	C:\Windows\WinSxS\amd64_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.5592_none_8a1e1b372ed7b012\ATL80.DLL
+0x0000000003cd0000 - 0x0000000003cde000 	C:\Program Files\MATLAB\R2008a\bin\win64\mlautoregister.dll
+0x000007fefef10000 - 0x000007fefef3e000 	C:\Windows\system32\IMM32.DLL
+0x000007fefd040000 - 0x000007fefd149000 	C:\Windows\system32\MSCTF.dll
+0x000000006fa00000 - 0x000000006fa3f000 	C:\PROGRA~2\Sophos\SOPHOS~1\SOPHOS~2.DLL
+0x0000000007740000 - 0x000000000810e000 	C:\Program Files\MATLAB\R2008a\bin\win64\mkl.dll
+0x0000000003e50000 - 0x0000000003e9b000 	C:\Program Files\MATLAB\R2008a\bin\win64\libguide40.dll
+0x0000000003eb0000 - 0x0000000003eb8000 	C:\Program Files\MATLAB\R2008a\bin\win64\mklcompat.dll
+0x0000000008110000 - 0x00000000086b7000 	C:\Program Files\MATLAB\R2008a\bin\win64\mllapack.dll
+0x0000000007310000 - 0x0000000007404000 	C:\Program Files\MATLAB\R2008a\bin\win64\libfftw3i.dll
+0x0000000007410000 - 0x00000000074fe000 	C:\Program Files\MATLAB\R2008a\bin\win64\libfftw3f.dll
+0x000007fefcc70000 - 0x000007fefcc7f000 	C:\Windows\system32\profapi.dll
+0x000007fefcba0000 - 0x000007fefcbaf000 	C:\Windows\system32\CRYPTBASE.dll
+0x000007fefb790000 - 0x000007fefb984000 	C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_fa396087175ac9ac\comctl32.dll
+0x000007fefd960000 - 0x000007fefdb37000 	C:\Windows\system32\SETUPAPI.dll
+0x000007fefcfe0000 - 0x000007fefd016000 	C:\Windows\system32\CFGMGR32.dll
+0x000007fefd020000 - 0x000007fefd03a000 	C:\Windows\system32\DEVOBJ.dll
+0x000007fefd570000 - 0x000007fefd609000 	C:\Windows\system32\CLBCatQ.DLL
+0x000007fefb1f0000 - 0x000007fefb31c000 	C:\Windows\system32\propsys.dll
+0x000007fefa7a0000 - 0x000007fefa7cd000 	C:\Windows\system32\ntmarta.dll
+0x000007fefd160000 - 0x000007fefd1b2000 	C:\Windows\system32\WLDAP32.dll
+0x000007fef9e00000 - 0x000007fef9e27000 	C:\Windows\system32\iphlpapi.dll
+0x000007fef9df0000 - 0x000007fef9dfb000 	C:\Windows\system32\WINNSI.DLL
+0x000007fefc340000 - 0x000007fefc39b000 	C:\Windows\system32\DNSAPI.dll
+0x000007fef99d0000 - 0x000007fef99e1000 	C:\Windows\system32\dhcpcsvc6.DLL
+0x000007fef98e0000 - 0x000007fef98f8000 	C:\Windows\system32\dhcpcsvc.DLL
+0x000007fefcb10000 - 0x000007fefcb35000 	C:\Windows\system32\SspiCli.dll
+0x000000006e860000 - 0x000000006e863000 	C:\Windows\system32\icmp.Dll
+0x000000000eeb0000 - 0x000000000f401000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\server\jvm.dll
+0x000007fefa880000 - 0x000007fefa8bb000 	C:\Windows\system32\WINMM.dll
+0x0000000006b50000 - 0x0000000006b5a000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\hpi.dll
+0x0000000006b70000 - 0x0000000006b7e000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\verify.dll
+0x0000000006ff0000 - 0x0000000007017000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\java.dll
+0x0000000006b80000 - 0x0000000006b92000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\zip.dll
+0x0000000007500000 - 0x0000000007516000 	C:\Program Files\MATLAB\R2008a\bin\win64\nativejava.dll
+0x0000000007520000 - 0x0000000007536000 	C:\Program Files\MATLAB\R2008a\bin\win64\nativejmi.dll
+0x00000000087d0000 - 0x00000000087d7000 	C:\Program Files\MATLAB\R2008a\bin\win64\nativeservices.dll
+0x000000000fd70000 - 0x000000000ffc0000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\awt.dll
+0x0000000011e60000 - 0x0000000011ec9000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\fontmanager.dll
+0x00000000089b0000 - 0x00000000089c7000 	C:\Program Files\MATLAB\R2008a\sys\java\jre\win64\jre1.6.0\bin\net.dll
+
+VM Arguments:
+jvm_args: -Xss512k -XX:PermSize=32M -Xms64m -XX:NewRatio=3 -XX:MaxPermSize=128M -Xmx196m -XX:MaxDirectMemorySize=2147400000 -Dsun.java2d.noddraw=true -Dsun.awt.nopixfmt=true -Xshare:off -Xrs -Djava.library.path=C:\Program Files\MATLAB\R2008a\bin\win64 vfprintf abort
+java_command: <unknown>
+Launcher Type: generic
+
+Environment Variables:
+CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
+PATH=C:\Program Files (x86)\Nokia\PC Connectivity Solution\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Intel\DMIX;C:\Program Files (x86)\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\NTRU Cryptosystems\NTRU TCG Software Stack\bin\;C:\Program Files\Wave Systems Corp\Gemalto\Access Client\v5\;c:\Program Files\WIDCOMM\Bluetooth Software\;c:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files (x86)\Common Files\Adobe\AGL;C:\Program Files\MATLAB\R2010b\bin;C:\Program Files\MATLAB\R2010a\bin;C:\Program Files\MATLAB\R2008a\bin;C:\Program Files\MATLAB\R2008a\bin\win64;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\Microsoft Windows Performance Toolkit\
+USERNAME=rmeddis
+OS=Windows_NT
+PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 37 Stepping 2, GenuineIntel
+
+
+
+---------------  S Y S T E M  ---------------
+
+OS: Windows NT 6.1 Build 7601 Service Pack 1
+
+CPU:total 4 em64t ht
+
+Memory: 4k page, physical 8181592k(5524620k free), swap 16361336k(13575508k free)
+
+vm_info: Java HotSpot(TM) 64-Bit Server VM (1.6.0-b105) for windows-amd64, built on Nov 29 2006 00:38:01 by "java_re" with unknown MS VC++:1400
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testPrograms/html/myConv.html	Mon Jun 06 09:11:29 2011 +0100
@@ -0,0 +1,172 @@
+
+<!DOCTYPE html
+  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
+<html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+   
+      <!--
+This HTML is auto-generated from an M-file.
+To make changes, update the M-file and republish this document.
+      -->
+      <title>myConv</title>
+      <meta name="generator" content="MATLAB 7.6">
+      <meta name="date" content="2011-06-05">
+      <meta name="m-file" content="myConv"><style>
+
+body {
+  background-color: white;
+  margin:10px;
+}
+
+h1 {
+  color: #990000; 
+  font-size: x-large;
+}
+
+h2 {
+  color: #990000;
+  font-size: medium;
+}
+
+/* Make the text shrink to fit narrow windows, but not stretch too far in 
+wide windows. */ 
+p,h1,h2,div.content div {
+  max-width: 600px;
+  /* Hack for IE6 */
+  width: auto !important; width: 600px;
+}
+
+pre.codeinput {
+  background: #EEEEEE;
+  padding: 10px;
+}
+@media print {
+  pre.codeinput {word-wrap:break-word; width:100%;}
+} 
+
+span.keyword {color: #0000FF}
+span.comment {color: #228B22}
+span.string {color: #A020F0}
+span.untermstring {color: #B20000}
+span.syscmd {color: #B28C00}
+
+pre.codeoutput {
+  color: #666666;
+  padding: 10px;
+}
+
+pre.error {
+  color: red;
+}
+
+p.footer {
+  text-align: right;
+  font-size: xx-small;
+  font-weight: lighter;
+  font-style: italic;
+  color: gray;
+}
+
+  </style></head>
+   <body>
+      <div class="content">
+         <h2>Contents</h2>
+         <div>
+            <ul>
+               <li><a href="#3">testing convolution speculation</a></li>
+               <li><a href="#4">convolution function</a></li>
+               <li><a href="#5">normalise conv function</a></li>
+               <li><a href="#6">adjust for spike current</a></li>
+               <li><a href="#7">convolution</a></li>
+            </ul>
+         </div><pre class="codeinput">signalDuration=.1;
+spikeTime= signalDuration/2;
+<span class="keyword">for</span> sampleRate=[1000 2000];
+</pre><pre class="codeinput">    disp([<span class="string">'sample rate= '</span> num2str(sampleRate)])
+</pre><pre class="codeoutput">sample rate= 1000
+</pre><pre class="codeoutput">sample rate= 2000
+</pre><h2>testing convolution speculation<a name="3"></a></h2><pre class="codeinput">dt= 1/sampleRate;
+signalLength=round(signalDuration/dt);
+spikeArray=zeros(1,signalLength);
+spikeLocation=round(spikeTime/dt);
+spikeArray(spikeLocation)=1;
+disp([<span class="string">'length of spike array= '</span> num2str(length(spikeArray))])
+t=dt*(1:length(spikeArray));
+plot(t, spikeArray)
+</pre><pre class="codeoutput">length of spike array= 100
+</pre><img vspace="5" hspace="5" src="myConv_01.png"> <pre class="codeoutput">length of spike array= 200
+</pre><img vspace="5" hspace="5" src="myConv_06.png"> <h2>convolution function<a name="4"></a></h2><pre class="codeinput">CNspikeToCurrentTau=0.01;
+t=dt:dt:3*CNspikeToCurrentTau;
+CNalphaFunction=<span class="keyword">...</span>
+    (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
+
+plot(t, CNalphaFunction)
+</pre><img vspace="5" hspace="5" src="myConv_02.png"> <img vspace="5" hspace="5" src="myConv_07.png"> <h2>normalise conv function<a name="5"></a></h2><pre class="codeinput">CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
+plot(t, CNalphaFunction)
+disp([<span class="string">'area under function= '</span> num2str(sum(CNalphaFunction))])
+</pre><pre class="codeoutput">area under function= 1
+</pre><img vspace="5" hspace="5" src="myConv_03.png"> <pre class="codeoutput">area under function= 1
+</pre><img vspace="5" hspace="5" src="myConv_08.png"> <h2>adjust for spike current<a name="6"></a></h2><pre class="codeinput">CNcurrentPerSpike=2;
+CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
+plot(t, CNalphaFunction)
+</pre><img vspace="5" hspace="5" src="myConv_04.png"> <img vspace="5" hspace="5" src="myConv_09.png"> <h2>convolution<a name="7"></a></h2><pre class="codeinput">result=conv(spikeArray,CNalphaFunction);
+t=dt*(1:length(result));
+plot(t, result)
+disp([<span class="string">'area under function= '</span> num2str(sum(result))])
+</pre><pre class="codeoutput">area under function= 2
+</pre><img vspace="5" hspace="5" src="myConv_05.png"> <pre class="codeoutput">area under function= 2
+</pre><img vspace="5" hspace="5" src="myConv_10.png"> <pre class="codeinput"><span class="keyword">end</span>
+</pre><p class="footer"><br>
+            Published with MATLAB&reg; 7.6<br></p>
+      </div>
+      <!--
+##### SOURCE BEGIN #####
+signalDuration=.1;
+spikeTime= signalDuration/2;
+for sampleRate=[1000 2000];
+    disp(['sample rate= ' num2str(sampleRate)])
+
+%% testing convolution speculation
+dt= 1/sampleRate;
+signalLength=round(signalDuration/dt);
+spikeArray=zeros(1,signalLength);
+spikeLocation=round(spikeTime/dt);
+spikeArray(spikeLocation)=1;
+disp(['length of spike array= ' num2str(length(spikeArray))])
+t=dt*(1:length(spikeArray));
+plot(t, spikeArray)
+
+%% convolution function
+CNspikeToCurrentTau=0.01;
+t=dt:dt:3*CNspikeToCurrentTau;
+CNalphaFunction=...
+    (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
+
+plot(t, CNalphaFunction)
+
+%% normalise conv function
+CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
+plot(t, CNalphaFunction)
+disp(['area under function= ' num2str(sum(CNalphaFunction))])
+
+%% adjust for spike current
+CNcurrentPerSpike=2;
+CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
+plot(t, CNalphaFunction)
+
+%% convolution
+result=conv(spikeArray,CNalphaFunction);
+t=dt*(1:length(result));
+plot(t, result)
+disp(['area under function= ' num2str(sum(result))])
+
+end
+
+
+
+
+##### SOURCE END #####
+-->
+   </body>
+</html>
\ No newline at end of file
Binary file testPrograms/html/myConv.png has changed
Binary file testPrograms/html/myConv_01.png has changed
Binary file testPrograms/html/myConv_02.png has changed
Binary file testPrograms/html/myConv_03.png has changed
Binary file testPrograms/html/myConv_04.png has changed
Binary file testPrograms/html/myConv_05.png has changed
Binary file testPrograms/html/myConv_06.png has changed
Binary file testPrograms/html/myConv_07.png has changed
Binary file testPrograms/html/myConv_08.png has changed
Binary file testPrograms/html/myConv_09.png has changed
Binary file testPrograms/html/myConv_10.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testPrograms/myConv.m	Mon Jun 06 09:11:29 2011 +0100
@@ -0,0 +1,43 @@
+signalDuration=.1;
+spikeTime= signalDuration/2;
+for sampleRate=[1000 2000];
+    disp(['sample rate= ' num2str(sampleRate)])
+
+%% testing convolution speculation
+dt= 1/sampleRate;
+signalLength=round(signalDuration/dt);
+spikeArray=zeros(1,signalLength);
+spikeLocation=round(spikeTime/dt);
+spikeArray(spikeLocation)=1;
+disp(['length of spike array= ' num2str(length(spikeArray))])
+t=dt*(1:length(spikeArray));
+plot(t, spikeArray)
+
+%% convolution function
+CNspikeToCurrentTau=0.01;
+t=dt:dt:3*CNspikeToCurrentTau;
+CNalphaFunction=...
+    (1/CNspikeToCurrentTau)*t.*exp(-t/CNspikeToCurrentTau);
+
+plot(t, CNalphaFunction)
+
+%% normalise conv function
+CNalphaFunction=CNalphaFunction/sum(CNalphaFunction);
+plot(t, CNalphaFunction)
+disp(['area under function= ' num2str(sum(CNalphaFunction))])
+
+%% adjust for spike current
+CNcurrentPerSpike=2;
+CNalphaFunction=CNalphaFunction*CNcurrentPerSpike;
+plot(t, CNalphaFunction)
+
+%% convolution
+result=conv(spikeArray,CNalphaFunction);
+t=dt*(1:length(result));
+plot(t, result)
+disp(['area under function= ' num2str(sum(result))])
+
+end
+
+
+
--- a/testPrograms/showMAP.m	Thu Jun 02 14:30:01 2011 +0100
+++ b/testPrograms/showMAP.m	Mon Jun 06 09:11:29 2011 +0100
@@ -51,8 +51,8 @@
         nHSRCNneuronss=nCNneurons/nANfiberTypes;
         disp(['CN: ' num2str(sum(sum(CNoutput(end-nHSRCNneuronss+1:end,:)))...
             /(nHSRCNneuronss*duration))])
-        disp(['IC: ' num2str(sum(sum(ICoutput)))])
-        disp(['IC by type: ' num2str(mean(ICfiberTypeRates,2)')])
+        disp(['IC: ' num2str(sum(sum(ICoutput))/duration)])
+%         disp(['IC by type: ' num2str(mean(ICfiberTypeRates,2)')])
     else
         disp(['AN: ' num2str(mean(mean(ANprobRateOutput)))])
     end
@@ -237,4 +237,4 @@
     set(gca,'xtickLabel', round(100*t(tt))/100)
 end
 
-path(restorePath)
\ No newline at end of file
+path(restorePath)
--- a/testPrograms/test_MAP1_14.m	Thu Jun 02 14:30:01 2011 +0100
+++ b/testPrograms/test_MAP1_14.m	Mon Jun 06 09:11:29 2011 +0100
@@ -1,9 +1,37 @@
 function test_MAP1_14
+% test_MAP1_14 is a general purpose test routine that can be adjusted to
+% test a number of different applications of MAP1_14
+%
+% A range of options are supplied in the early part of the program
+%
+% One use of the function is to create demonstrations; filenames <demoxx>
+%  to illustrate particular features
+%
+% #1
+% Identify the file (in 'MAPparamsName') containing the model parameters
+% 
+% #2
+% Identify the kind of model required (in 'AN_spikesOrProbability').
+%  A full brainstem model (spikes) can be computed or a shorter model
+%  (probability) that computes only so far as the auditory nerve
+%
+% #3
+% Choose between a tone signal or file input (in 'signalType')
+%
+% #4
+% Set the signal rms level (in leveldBSPL)
+%
+% #5
+% Indentify the channels in terms of their best frequencies in the vector
+%  BFlist.
+%
+% Last minute changes to the parameters fetched earlier can be made using
+%  the cell array of strings 'paramChanges'.
+%  Each string must have the same format as the corresponding line in the
+%  file identified in 'MAPparamsName'
+%
+% When the demonstration is satisfactory, freeze it by renaming it <demoxx>
 
-% MAPdemo runs the MATLAB auditory periphery model (MAP1_14) as far as
-%  the AN (probabilities) or IC (spikes) with graphical output
-
-% Things you might want to change; #1 - #5
 
 %%  #1 parameter file name
 MAPparamsName='Normal';
@@ -18,7 +46,7 @@
 %% #3 pure tone, harmonic sequence or speech file input
 signalType= 'tones';
 duration=0.100;                 % seconds
-duration=0.020;                 % seconds
+% duration=0.020;                 % seconds
 sampleRate= 64000;
 % toneFrequency= 250:250:8000;    % harmonic sequence (Hz)
 toneFrequency= 2000;            % or a pure tone (Hz8
@@ -26,14 +54,14 @@
 rampDuration=.005;              % seconds
 
 % or
-signalType= 'file';
-fileName='twister_44kHz';
+% signalType= 'file';
+% fileName='twister_44kHz';
 % fileName='new-da-44khz';
 
 
 %% #4 rms level
 % signal details
-leveldBSPL=70;                  % dB SPL
+leveldBSPL= 90;                  % dB SPL
 
 
 %% #5 number of channels in the model
@@ -43,7 +71,7 @@
 BFlist=round(logspace(log10(lowestBF), log10(highestBF), numChannels));
 
 %   or specify your own channel BFs
-% BFlist=toneFrequency;
+BFlist=toneFrequency;
 
 
 %% #6 change model parameters
@@ -54,18 +82,14 @@
 %  *after* the MAPparams file has been read
 % This example declares only one fiber type with a calcium clearance time
 % constant of 80e-6 s (HSR fiber) when the probability option is selected.
-% switch AN_spikesOrProbability
-%     case 'probability'
-%         paramChanges={'IHCpreSynapseParams.tauCa=80e-6;'};
-%     otherwise
-%         paramChanges=[];
-% end
+        paramChanges={'AN_IHCsynapseParams.ANspeedUpFactor=5;', ...
+            'IHCpreSynapseParams.tauCa=86e-6;'};
 
 %% delare showMap options
 showMapOptions=[];  % use defaults
 
 % or (example: show everything including an smoothed SACF output
-    showMapOptions.showModelParameters=1;
+    showMapOptions.showModelParameters=0;
     showMapOptions.showModelOutput=1;
     showMapOptions.printFiringRates=1;
     showMapOptions.showACF=0;
@@ -98,12 +122,20 @@
 disp(['Signal duration= ' num2str(length(inputSignal)/sampleRate)])
 disp([num2str(numChannels) ' channel model'])
 disp('Computing ...')
+
+restorePath=path;
+addpath (['..' filesep 'MAP'])
+
 MAP1_14(inputSignal, sampleRate, BFlist, ...
     MAPparamsName, AN_spikesOrProbability, paramChanges);
+path(restorePath)
 toc
 
 % the model run is now complete. Now display the results
 showMAP(showMapOptions)
+for i=1:length(paramChanges)
+disp(paramChanges{i})
+end
 
 toc
 path(restorePath)
@@ -130,5 +162,5 @@
 
 % add 10 ms silence
 silence= zeros(1,round(0.03/dt));
-% inputSignal= [silence inputSignal silence];
+inputSignal= [silence inputSignal silence];