diff --git a/mrdna/model/nbPot.py b/mrdna/model/nbPot.py
index 6941f479cb05100ec26c207886dc8e9741582683..1ad9022c88a33326b1fe9382e45093183f87a47d 100644
--- a/mrdna/model/nbPot.py
+++ b/mrdna/model/nbPot.py
@@ -7,37 +7,13 @@ from mrdna.model.nonbonded import NonbondedScheme
 from mrdna import get_resource_path
 from mrdna.config import CACHE_DIR
 
-## TODO: clean this file up a bit, make things protected
-
-_dxParam = -1
-
-def _maxForce(x,u0,maxForce=40):
-    maxForce = maxForce * 0.014393265 # convert pN to kcal_mol/AA
-    dx = np.diff(x)
-    f = -np.diff(u0)/dx
-    f[ np.isnan(f) ] = 0
-
-    ids = np.where(f > maxForce)[0]
-    f[ids] = maxForce
-    ids = np.where(f < -maxForce)[0]
-    f[ids] = -maxForce
-   
-    u = np.hstack( ((0), np.cumsum(-f*dx)) )
-    assert( np.any( x > 40 ) )
-    ids = np.where(x > 40)[0]
-    
-    u = u - np.mean(u[ids])
-    assert( np.isnan(u).sum() == 0 )
-    return u
+from scipy.optimize import curve_fit
+from pathlib import Path
 
-def integrate_potential(potfn,x,y,*parms):
-    u = np.zeros(np.shape(x))
-    for h in y:
-        r = np.sqrt(x**2 + h**2)
-        r[r<1] = 1
-        u = u + potfn(r,*parms) # * x/r
-    return u
+## TODO: clean this file up a bit, make things protected
 
+## units "291 k K" kcal_mol
+kT = 0.57827709
 
 def _round_bp(bp):
     return 10**(np.around(np.log10(bp)*100)/100.0)
@@ -50,13 +26,21 @@ class AbstractNbDnaScheme(NonbondedScheme):
         x,y = self.load_pmf()
         self.target_x = x
         self.target_y = y
-        self.target_x_interp = np.linspace(np.min(x),np.max(x),1000) # interpolate potential
+        base = 4
+        self.param_x = np.logspace(np.log(15)/np.log(base),np.log(120)/np.log(base),80,base=base)
+        # print(self.param_x)
+
+        self.target_x_interp = np.linspace(np.min(x),np.max(x),2*len(x)) # interpolate potential
+        self.target_x_interp = np.arange(23.5,38,0.1) # interpolate potential
         self.target_y_interp = interp1d(x,y)(self.target_x_interp)
+
+        self.bead_distribution_y = None
         
         """ Initialize caches """
-        self._pot_dict = dict()      # cache including only what has already been acessed
         try:
-            self._cached_params = np.load( self.get_package_cache_file() )
+            self.single_bp_pair_pot = np.loadtxt( self.get_package_cache_file() ).T
+            self.param_x = self.single_bp_pair_pot[0,:]
+            assert( len(self.param_x > 2) )
         except:
             pass
 
@@ -66,7 +50,7 @@ class AbstractNbDnaScheme(NonbondedScheme):
     def load_pmf(self):
         raise NotImplementedError()
 
-    def get_cache_file_for_pair(self,key):
+    def load_bead_distributions(self):
         raise NotImplementedError()
 
     def potential(self, r, typeA, typeB):
@@ -82,40 +66,233 @@ class AbstractNbDnaScheme(NonbondedScheme):
     def load_np(self,filename):
         return np.load(filename)['arr_0'].tolist()
 
-    def set_cache_params(self,key):
-        if key not in self._pot_dict:            
-            try:
-                self._pot_dict[key] = self._cached_params['{}:{}'.format(*key)]
-            except: 
-                cache_file = self.get_cache_file_for_pair(key)
-                try:
-                    self._pot_dict[key] = self.load_np(cache_file)
-                except:
-                    self._pot_dict[key] = self.fit_potential(*key)
-                    np.savez(cache_file, self._pot_dict[key])
-
     def parametric_potential(self,x,*parms):
-        x0 = self.target_x
+        x0 = self.param_x
         x = np.array(x)
         u = interp1d(x0, np.array(parms),
                      bounds_error = False, fill_value="extrapolate",
                      assume_sorted=True)(x).T
-        u[x>np.max(x0)] = 0
-        return u
-
-    def fit_potential(self,bp1,bp2):
-        assert(bp2 >= bp1)
+        return u-u[-1]
 
-        def fitFun(x,*parms):
-            ## 1-turn iteracting with at least 4 turns (more is not needed)
-            y = np.arange(-20,21)*(bp2*3.4)
+    def get_bead_distributions(self, interhelical_distances):
+        if self.bead_distribution_y is None:
+            self.load_bead_distributions()
+        return self.bead_distribution_x, self.bead_distribution_y(interhelical_distances)
 
-            return (10.0/bp1) * integrate_potential(self.parametric_potential, x,y,*parms)
+    def iterative_fit(self):
+        try:
+            import bead_dist_data as bdd
+            x = bdd.bead_centers.x
+        except:
+            ## First iteration
+            x = np.arange(0,200,0.2)
+            f = self.get_target_force(x+2)
+            f[f>0.5] = 0.5
+            u = np.cumsum(f[::-1])[::-1]
+            u = 0.5* u / (10*20)
+            np.savetxt("pair-pot.dat", np.array((x,u)).T)
+            return interp1d(x,u,
+                            bounds_error = False, fill_value="extrapolate",
+                            assume_sorted=True)(self.param_x).T
+
+        x = x[x<50]
+        data = np.loadtxt("last/pair-pot.dat")
+        u_last = interp1d(data[:,0], data[:,1],
+                          bounds_error = False, fill_value="extrapolate",
+                          assume_sorted=True)(x).T
+
+        particle_force = np.diff(u_last) / np.diff(x)
+
+        for b in bdd.bead_dists:
+            ids = bdd.bead_centers < 10
+            b[:,ids] = 0
+
+        R = bdd.interhelical_spacing
+        R,y = self.load_rau_pressure()
+
+        P = self.get_pressure(R)
+        P_t = self.get_target_pressure(R)
+        dP = P_t-P
+
+        np.savetxt("raw_pressure.dat", self.get_raw_pressure())
+        np.savetxt("pressure.dat", np.array((R,P)).T)
+        np.savetxt("target_pressure.dat", np.array((R,P_t)).T)
+
+        def fitFun(R,*uvals):
+            df_interp = dfFun(*uvals)
+            dP_local = self.get_virial_pressure(R, df_interp)
+            print( np.std(dP_local-dP) )
+            return dP_local
+
+        def duFun(x,*popt):
+            f = dfFun(*popt)(x)
+            u = -np.cumsum(f) * np.mean( np.diff(x) )
+            u = u - u[-1]
+            return u
+
+        def dfFun(x0,f0,x1_par,x2):
+            x1 = (1-x1_par)*x0 + x1_par*x2
+            t = np.linspace(0,1,100)
+            x = x0*(1-t)**2 + 2*x1*(1-t)*t + x2*t**2
+            f = f0*(1-t)**2
+            return interp1d(x, f,
+                            bounds_error = False,
+                            fill_value=0,
+                            assume_sorted=True)
+
+        dP_sofar = np.zeros(dP.shape)
+        popt_list = []
+        for i in range(3):
+            popt, pcov = opt.curve_fit(fitFun, R, dP-dP_sofar,
+                                       bounds=((10,-0.1,0.1,35),
+                                               (34,0.1,0.9,50)),
+                                       p0=(20,0,0.25,50))
+            popt_list.append(popt)
+            dP_sofar += fitFun(R,*popt)
+
+        du = np.zeros(x.shape)
+        for popt in popt_list:
+            du = du + duFun(x,*popt)
+
+        du = savgol(du,int(2.5/(x[1]-x[0]))*2+1,3)
+        u = u_last+0.75*du
+        u = u-u[-1]
+
+        np.savetxt("pair-pot.dat", np.array((x,u)).T)
+
+        return interp1d(x,u,
+                        bounds_error = False, fill_value="extrapolate",
+                          assume_sorted=True)(self.param_x).T
+
+
+    def get_virial_pressure(self, R, bead_force):
+        """ Return pressure as fn of interhelical spacing """
+        import bead_dist_data as bdd
+
+        interhelical_spacing = bdd.interhelical_spacing
+        volume = (np.pi*np.array(bdd.radii)**2) * bdd.height
+
+        # units "kcal_mol/AA**3" atm
+        # * 68568.409
+
+        xy = bdd.bead_centers[np.newaxis,:]
+        r = bdd.bead_centers[:,np.newaxis]
+        force = bead_force(r)
+
+        """ Pxy = 1/(4V) Sum_ij (xy_ij)**2 * bead_force(r_ij) / r_ij """
+        ## 2*count because count only includes i < j
+        pressure = [68568.409*np.sum( 2*count * (xy**2) * force / r ) / (4 * vol)
+                    for vol,count in zip(volume,bdd.bead_dists)]
+        return pchip_interpolate(interhelical_spacing, pressure, R)
+        """
+        return interp1d(interhelical_spacing, pressure,
+                        bounds_error = False,
+                        kind='cubic',
+                        fill_value="extrapolate",
+                        assume_sorted=True)(R)
+
+        ## Fit double exponential
 
-        popt, pcov = opt.curve_fit(fitFun, self.target_x_interp, 
-                                   self.target_y_interp, 
-                                   p0=self.target_y/10**2 ) # find fit to interpolated potential
-        return popt
+        try:
+            def fitfn(x,A,a,b):
+                return A*a**(-b**x)
+            def fit_wrap(x,*popt):
+                print("pressure:",pressure)
+                print("  ",fitfn(interhelical_spacing, *popt) - pressure)
+                return fitfn(x,*popt)
+            popt, pcov = opt.curve_fit(fit_wrap, interhelical_spacing, pressure,
+                                       bounds=((-np.inf,0,0),
+                                               (np.inf,np.inf,np.inf)),
+                                       p0=(0,1,1))
+            return fitfn(R,*popt)
+        except:
+            return interp1d(interhelical_spacing, pressure,
+                            bounds_error = False, 
+                            fill_value="extrapolate",
+                            assume_sorted=True)(R)
+        """
+
+
+    def get_interhelical_density(self,R):
+        data = np.loadtxt("last/density.dat")
+        r,rho = data.T 
+        rho = rho / r**2
+        rho = rho/np.trapz(rho,r)
+        filter_points = int(2.5/(r[1]-r[0]))*2 + 1
+        rho = savgol(rho, filter_points, 3) # smooth density
+        return interp1d(r,rho,
+                          bounds_error = False, fill_value=0,
+                          assume_sorted=True)(R).T
+
+    def get_raw_pressure(self):
+        from bead_dist_data import interhelical_spacing, pressure
+        distance = interhelical_spacing
+        assert( len(distance) > 2 )
+        return distance,pressure
+
+    def get_pressure(self,R):
+        distance,pressure = self.get_raw_pressure()
+        # distance,pressure = np.loadtxt("last/pressure.dat")
+        return pchip_interpolate(distance, pressure, R)
+        return interp1d(distance, pressure,
+                        bounds_error = False,
+                        kind='cubic',
+                        fill_value="extrapolate",
+                        assume_sorted=True)(R)
+        def fitfn(x,a,b):
+            return a**(-b**x)
+
+        popt, pcov = opt.curve_fit(fitfn, distance, pressure,
+                                   bounds=(0,np.inf),
+                                   p0=(1,1))
+        return fitfn(R,*popt)
+
+
+    def get_interhelical_force(self,R):
+        y = pressure = self.get_pressure(R)
+        x = R
+        force = (x*y / np.sqrt(3)) * 34 * 1.4583976e-05 # convert atm AA**2 to kcal/mol AA
+        return force
+
+    def get_target_interhelical_density(self,R):
+        r,u = self.load_pmf()
+        rho = np.exp( -u/kT )  
+        rho = rho / np.trapz(rho,r)
+        return interp1d(r,rho,
+                          bounds_error = False, fill_value=0,
+                          assume_sorted=True)(R).T
+
+    def get_target_force(self,R):
+        x,y = self.load_rau_force()
+        # return pchip_interpolate(x, y, R)
+        # return interp1d(x,y,
+        #                 bounds_error = False,
+        #                 # kind='cubic',
+        #                 fill_value="extrapolate",
+        #                 assume_sorted=True)(R)
+
+        def fitfn(x,A,a):
+            return A * np.exp(-(x-18)/a)
+        popt,pcov = curve_fit(fitfn, x,y, p0=(10,20))
+        return fitfn(R,*popt)
+
+    def get_target_pressure(self,R):
+        x,y = self.load_rau_pressure()
+        return pchip_interpolate(x, y, R)
+        return interp1d(x,y,
+                        bounds_error = False,
+                        kind='cubic',
+                        fill_value="extrapolate",
+                        assume_sorted=True)(R)
+        def fitfn(x,A,a):
+            return A * np.exp(-(x-18)/a)
+        popt,pcov = curve_fit(fitfn, x,y, p0=(10,20))
+        return fitfn(R,*popt)
+
+    def load_rau_force(self):
+        x,y = self.load_rau_pressure()
+        y = (x*y / np.sqrt(3)) * 34 * 1.4583976e-05 # convert atm AA**2 to kcal/mol AA
+        return x,y
 
     def get_rounded_bp(self,bps1,bps2):
         larger  = np.max([bps1,bps2])
@@ -126,45 +303,11 @@ class AbstractNbDnaScheme(NonbondedScheme):
         return smaller,larger,smaller_shift,larger_shift
 
     def nbPot(self, x, bps1, bps2):
-        smaller,larger,smaller_shift,larger_shift = self.get_rounded_bp(bps1,bps2)
-        key = (smaller_shift,larger_shift)
-        self.set_cache_params(key)
-
-        u = self.parametric_potential(x,*self._pot_dict[key])
-        u = u * ( (smaller/smaller_shift)*(larger/larger_shift) )
-
-        # u1 = _maxForce(x,u, 100)
-        # u2 = savgol(u1, int(5.0/(self.x0[1]-self.x0[0])), 3)    
-        u2 = u
-        assert(np.sum(np.isnan(u2)) == 0)
-        return u2
-
-    """ Creating package cache """
-
-    def _write_cache(self):
-        keys = []
-        for i in np.arange(0.4,5.5,0.01):
-            ir = _round_bp(i)
-            for j in np.arange(0.4,5.5,0.01):
-                if j < i: continue
-                keys.append( (ir,_round_bp(j)) )
-
-        keys = sorted(list(set(keys)))
-        print(len(keys))
-
-        new_cache_dict = dict()
-        
-        args = [(self, new_cache_dict, key) for key in keys]
-        
-        from multiprocessing import Pool
-        p = Pool(15)
-        print("Starting pool")
-        for arg in args:
-            _add_parameter_to_cache_dict(arg)
-
-        p.map( _add_parameter_to_cache_dict, args )
-        print("done with pool")
-        np.savez( self.get_package_cache_file(), **new_cache_dict)
+        x0,u0 = self.single_bp_pair_pot
+        u = self.parametric_potential(x,*u0)
+        u = u * bps1 * bps2
+        assert(np.sum(np.isnan(u)) == 0)
+        return u
 
 
 def _add_parameter_to_cache_dict( args ):
@@ -175,58 +318,133 @@ def _add_parameter_to_cache_dict( args ):
 
 
 class nbDnaScheme100Mg(AbstractNbDnaScheme):
-    def get_package_cache_file(self):
-        return get_resource_path("nbPot.jj-nar-dna-pmf-100Mg.npz")
 
+    def get_package_cache_file(self):
+        return get_resource_path("nbPot.rau_refined_100Mg.dat")
+
+    def load_rau_pressure(self):
+        data = np.loadtxt("rau-data-100Mg.dat")
+        x = data[:,0]
+        y0 = data[:,1]
+        y = (10**y0) * 9.8692327e-07 # convert dyne/cm^2 to atm
+        return x,y
+    
     def load_pmf(self):
         d = np.loadtxt(get_resource_path("jj-nar-dna-pmf-100Mg.dat"))
-        x0 = d[:,1] + _dxParam
+        x0 = d[:,1]
         y0 = d[:,0]                     # kcal/mol for 10bp with 10bp, according to JY
-        y0 = y0 - np.mean(y0[x0>(38.5 + _dxParam)])    # set 0 to tail of potential
-        y0 = savgol(y0, int(5.0/(x0[1]-x0[0])), 3) # smooth potential
+        y0 = y0 - np.mean(y0[x0 > 38.5])    # set 0 to tail of potential
+        filter_points = int(2.5/(x0[1]-x0[0]))*2 + 1
+        y0 = savgol(y0, filter_points, 3) # smooth potential
         return x0,y0
 
-    def get_cache_file_for_pair(self,key):
-        filename = "nbPot-100Mg-{}-{}.npz".format(*key)
-        return CACHE_DIR / filename
+    def load_bead_distributions(self):
+        from bead_dist_data import helix_bins, bead_bins
+        from bead_dist_data import helix_centers, bead_centers
+        import bead_dist_data as bdd
+
+        self.bead_distribution_x = x = bdd.bead_centers
+
+        all_x = []
+        all_y = []
+        for i in range(0,len(bdd.helix_centers),1):
+            y = bdd.bead_dists_for_helix_dist[i]
+
+            # if y.sum() == 0: continue
+            if bdd.helix_centers[i] < 20: continue 
+            all_x.append( bdd.helix_centers[i] )
+            filter_points = int(5/(x[1]-x[0]))*2 + 1
+            y = savgol( y, filter_points, 3) # smooth and normalize data
+            y[y<0] = 0                                       # ensure positive
+            y = 10*20 * y/np.trapz(y,x) # normalize
+            all_y.append( y )
+
+        self.bead_distribution_y = interp1d( np.array(all_x), np.array(all_y),
+                                             axis=0,
+                                             kind='linear',
+                                             bounds_error = False, fill_value="extrapolate",
+                                             assume_sorted=True)
+
 
 class nbDnaScheme20Mg(AbstractNbDnaScheme):
-    def get_package_cache_file(self):
-        return get_resource_path("nbPot.jj-nar-dna-pmf-20Mg-200Na.npz")
 
+    def get_package_cache_file(self):
+        return get_resource_path("nbPot.rau_refined_20Mg_200Na.dat")
+
+    def load_rau_pressure(self):
+        data = np.loadtxt("rau-data-20Mg.dat")
+        x = data[:,0]
+        y0 = data[:,1]
+        y = (10**y0) * 9.8692327e-07 # convert dyne/cm^2 to atm
+        return x,y
+    
     def load_pmf(self):
         d = np.loadtxt(get_resource_path("jj-nar-dna-pmf-20Mg-200Na.dat"))
-        x0 = d[:,1] + _dxParam
+        x0 = d[:,1]
         y0 = d[:,0]                     # kcal/mol for 10bp with 10bp, according to JY
-        y0 = y0 - np.mean(y0[x0>(38.5 + _dxParam)])    # set 0 to tail of potential
-        y0 = savgol(y0, int(5.0/(x0[1]-x0[0])), 3) # smooth potential
+        y0 = y0 - np.mean(y0[x0 > 38.5])    # set 0 to tail of potential
+        filter_points = int(2.5/(x0[1]-x0[0]))*2 + 1
+        y0 = savgol(y0, filter_points, 3) # smooth potential
         return x0,y0
 
-    def get_cache_file_for_pair(self,key):
-        filename = "nbPot-20Mg-200Na-{}-{}.npz".format(*key)
-        return CACHE_DIR / filename
+    def load_bead_distributions(self):
+        import bead_dist_data as bdd
 
-nbDnaScheme = nbDnaScheme100Mg()
+        self.bead_distribution_centers = bdd.bead_centers
+        self.bead_distribution_radii = bdd.radii
+        self.bead_distribution_counts = bdd.bead_dists
+        ...
+        
+
+        for i in range(0,len(bdd.helix_centers),1):
+            y = bdd.bead_dists_for_helix_dist[i]
+
+            # if y.sum() == 0: continue
+            if bdd.helix_centers[i] < 20: continue 
+            all_x.append( bdd.helix_centers[i] )
+            filter_points = int(5/(x[1]-x[0]))*2 + 1
+            y = savgol( y, filter_points, 3) # smooth and normalize data
+            y[y<0] = 0                                       # ensure positive
+            y = 10*20 * y/np.trapz(y,x) # normalize
+            all_y.append( y )
 
-def _plot_things():
-    np.savetxt("jj-filtered.dat", np.array((x0,y0)).T)
-    x = np.arange(0, 50, 0.1)
-    ## run some tests
-    for i in (0.5,1,1.05,2,3.333,5):
-        for j in (1,1.05,1.1,2,3.333, 4,5):
-            if i > j: continue
-            
-            # y = (10.0/i)*integrate_potential(nbPot_full, x, np.arange(-20,20)*(3.4*j) , i, j)
-            # np.savetxt("test1-{}-{}.dat".format(i,j), np.array((x,y)).T),
+        self.bead_distribution_y = interp1d( np.array(all_x), np.array(all_y),
+                                             axis=0,
+                                             bounds_error = False, fill_value="extrapolate",
+                                             assume_sorted=True)
 
-            y = (10.0/i)*integrate_potential(nbPot, x, np.arange(-20,20)*(3.4*j) , i, j)
-            np.savetxt("test2-{}-{}.dat".format(i,j), np.array((x,y)).T),
+
+# nbDnaScheme100MgObj = nbDnaScheme100Mg()
+nbDnaScheme = nbDnaScheme20MgObj = nbDnaScheme20Mg()
 
     
 if __name__ == "__main__":
     # import cProfile
     # cProfile.run("_run()")
     # _generate_cache()
+    # tmp = nbDnaScheme20Mg()
+    # tmp._write_cache()
+    # pass
+
     tmp = nbDnaScheme20Mg()
-    tmp._write_cache()
-    pass
+
+    # dR = 1
+    # for R in np.arange(22,35,2):
+    #     x,ys = tmp.get_bead_distributions(np.array([R-0.5*dR,R+0.5*dR]))
+    #     y1,y2 = ys
+    #     d_rho_dR = (y2-y1)/dR
+    #     # plt.plot(x,d_rho_dR)
+        
+    # x = np.arange(20,50,1)
+    # tmp.nbPot(x,1,1)
+        
+        
+    # plt.gca().set_xlim((10,40))
+    # plt.savefig("test.pdf")
+
+    # x = np.arange(20,50,1)
+    # tmp.nbPot(x,1,1)
+
+    nb = nbDnaScheme20MgObj
+    x = np.arange(10,50,1)
+    u = nb.nbPot(x,1,1)
diff --git a/mrdna/resources/nbPot.jj-nar-dna-pmf-100Mg.npz b/mrdna/resources/nbPot.jj-nar-dna-pmf-100Mg.npz
deleted file mode 100644
index 3424b86a976637c5ef74a864b87487d1e863ec56..0000000000000000000000000000000000000000
Binary files a/mrdna/resources/nbPot.jj-nar-dna-pmf-100Mg.npz and /dev/null differ
diff --git a/mrdna/resources/nbPot.jj-nar-dna-pmf-20Mg-200Na.npz b/mrdna/resources/nbPot.jj-nar-dna-pmf-20Mg-200Na.npz
deleted file mode 100644
index f596d0268c3ebc161b03c4b4d2c22d6c8dfd3dca..0000000000000000000000000000000000000000
Binary files a/mrdna/resources/nbPot.jj-nar-dna-pmf-20Mg-200Na.npz and /dev/null differ
diff --git a/mrdna/resources/nbPot.rau_refined_20Mg_200Na.dat b/mrdna/resources/nbPot.rau_refined_20Mg_200Na.dat
new file mode 100644
index 0000000000000000000000000000000000000000..0bfb24d0cabf3d1a73b91b8c977d1fd1ff76ae09
--- /dev/null
+++ b/mrdna/resources/nbPot.rau_refined_20Mg_200Na.dat
@@ -0,0 +1,250 @@
+1.000000000000000056e-01 1.482384481649214880e-01
+3.000000000000000444e-01 1.469884481649214869e-01
+5.000000000000000000e-01 1.457384481649215136e-01
+7.000000000000000666e-01 1.444884481649215402e-01
+9.000000000000000222e-01 1.432384481649215668e-01
+1.100000000000000089e+00 1.419884481649215380e-01
+1.300000000000000266e+00 1.407384481649215091e-01
+1.500000000000000000e+00 1.394884481649215358e-01
+1.700000000000000178e+00 1.382384481649215069e-01
+1.899999999999999911e+00 1.369884481649215335e-01
+2.100000000000000089e+00 1.357384481649215602e-01
+2.300000000000000266e+00 1.344884481649215313e-01
+2.500000000000000000e+00 1.332384481649215302e-01
+2.700000000000000178e+00 1.319884481649215013e-01
+2.900000000000000355e+00 1.307384481649215002e-01
+3.100000000000000089e+00 1.294884481649214991e-01
+3.300000000000000266e+00 1.282384481649215535e-01
+3.500000000000000000e+00 1.269884481649214969e-01
+3.700000000000000178e+00 1.257384481649215235e-01
+3.900000000000000355e+00 1.244884481649214808e-01
+4.099999999999999645e+00 1.232384481649214797e-01
+4.300000000000000711e+00 1.219884481649214786e-01
+4.500000000000000000e+00 1.207384481649214775e-01
+4.700000000000001066e+00 1.194884481649214764e-01
+4.900000000000000355e+00 1.182384481649214752e-01
+5.099999999999999645e+00 1.169884481649214741e-01
+5.300000000000000711e+00 1.157384481649214730e-01
+5.500000000000000000e+00 1.144884481649214719e-01
+5.700000000000001066e+00 1.132384481649214708e-01
+5.900000000000000355e+00 1.119884481649214697e-01
+6.099999999999999645e+00 1.107384481649214686e-01
+6.300000000000000711e+00 1.094884481649214675e-01
+6.500000000000000000e+00 1.082384481649214664e-01
+6.700000000000001066e+00 1.069884481649214653e-01
+6.900000000000000355e+00 1.057384481649214641e-01
+7.099999999999999645e+00 1.044884481649214908e-01
+7.300000000000000711e+00 1.032384481649214897e-01
+7.500000000000000000e+00 1.019884481649214886e-01
+7.700000000000001066e+00 1.007384481649214875e-01
+7.900000000000000355e+00 9.948844816492148635e-02
+8.100000000000001421e+00 9.823844816492148524e-02
+8.300000000000000711e+00 9.698844816492148413e-02
+8.500000000000000000e+00 9.573844816492148302e-02
+8.699999999999999289e+00 9.448844816492148191e-02
+8.900000000000000355e+00 9.323844816492148080e-02
+9.100000000000001421e+00 9.198844816492147969e-02
+9.300000000000000711e+00 9.073844816492147858e-02
+9.500000000000000000e+00 8.948844816492147747e-02
+9.700000000000001066e+00 8.823844816492147636e-02
+9.900000000000000355e+00 8.698844816492147525e-02
+1.010000000000000142e+01 8.573844816492147414e-02
+1.030000000000000071e+01 8.448844816492147303e-02
+1.050000000000000000e+01 8.323844816492147192e-02
+1.070000000000000107e+01 8.198844816492147081e-02
+1.090000000000000036e+01 8.073844816492146970e-02
+1.110000000000000142e+01 7.948844816492146859e-02
+1.130000000000000071e+01 7.823844816492146748e-02
+1.150000000000000000e+01 7.698844816492146637e-02
+1.170000000000000107e+01 7.573844816492146526e-02
+1.190000000000000036e+01 7.448844816492146415e-02
+1.210000000000000142e+01 7.323844816492146303e-02
+1.230000000000000071e+01 7.198844816492146192e-02
+1.250000000000000000e+01 7.073844816492146081e-02
+1.270000000000000107e+01 6.948844816492145970e-02
+1.290000000000000036e+01 6.823844816492145859e-02
+1.310000000000000142e+01 6.698844816492145748e-02
+1.330000000000000071e+01 6.573844816492145637e-02
+1.350000000000000000e+01 6.448844816492148302e-02
+1.370000000000000107e+01 6.323844816492148191e-02
+1.390000000000000036e+01 6.198844816492148080e-02
+1.410000000000000142e+01 6.073844816492147969e-02
+1.430000000000000071e+01 5.948844816492148552e-02
+1.450000000000000000e+01 5.823844816492149135e-02
+1.470000000000000107e+01 5.698844816492148330e-02
+1.490000000000000036e+01 5.573844816492148219e-02
+1.510000000000000142e+01 5.448844816492147414e-02
+1.530000000000000071e+01 5.323844816492147997e-02
+1.550000000000000000e+01 5.198844816492148579e-02
+1.570000000000000107e+01 5.073844816492148468e-02
+1.590000000000000036e+01 4.948844816492148357e-02
+1.610000000000000142e+01 4.823844816492146859e-02
+1.630000000000000071e+01 4.698844816492148135e-02
+1.650000000000000000e+01 4.573844816492149412e-02
+1.670000000000000284e+01 4.448844816492147219e-02
+1.689999999999999858e+01 4.323844816492149884e-02
+1.710000000000000142e+01 4.198844816492146997e-02
+1.730000000000000071e+01 4.073844816492148274e-02
+1.750000000000000000e+01 3.948844816492149551e-02
+1.770000000000000284e+01 3.823844816492146664e-02
+1.789999999999999858e+01 3.698844816492149329e-02
+1.810000000000000142e+01 3.573890750804423200e-02
+1.830000000000000071e+01 3.449964148174038125e-02
+1.850000000000000000e+01 3.326543479507449580e-02
+1.870000000000000284e+01 3.203174952939432524e-02
+1.889999999999999858e+01 3.079467276921514507e-02
+1.910000000000000142e+01 2.955087453884154558e-02
+1.930000000000000426e+01 2.829757488742942056e-02
+1.950000000000000000e+01 2.703251082681309980e-02
+1.970000000000000284e+01 2.575391270614731457e-02
+1.989999999999999858e+01 2.446048025400142725e-02
+2.010000000000000142e+01 2.315136325026871320e-02
+2.030000000000000426e+01 2.182635155962668605e-02
+2.050000000000000000e+01 2.051131269836524787e-02
+2.070000000000000284e+01 1.924601393329058649e-02
+2.089999999999999858e+01 1.804203627945345778e-02
+2.110000000000000142e+01 1.689542978922086575e-02
+2.130000000000000426e+01 1.580294468056044413e-02
+2.150000000000000000e+01 1.476199686941700659e-02
+2.170000000000000284e+01 1.377063537642885492e-02
+2.189999999999999858e+01 1.282751146689690633e-02
+2.210000000000000142e+01 1.193185020470221951e-02
+2.230000000000000426e+01 1.108342375715123083e-02
+2.250000000000000000e+01 1.028252618964296122e-02
+2.270000000000000284e+01 9.529949800822945516e-03
+2.289999999999999858e+01 8.826962744718941725e-03
+2.310000000000000142e+01 8.174601725929608181e-03
+2.330000000000000426e+01 7.559802863360493355e-03
+2.350000000000000000e+01 6.980227972423127571e-03
+2.370000000000000284e+01 6.433697866858183699e-03
+2.389999999999999858e+01 5.918183580024932201e-03
+2.410000000000000142e+01 5.431797696638207551e-03
+2.430000000000000426e+01 4.972783058729532239e-03
+2.450000000000000000e+01 4.539507565223987323e-03
+2.470000000000000284e+01 4.130454369144049079e-03
+2.489999999999999858e+01 3.744215735107158695e-03
+2.510000000000000142e+01 3.379484616440264159e-03
+2.530000000000000426e+01 3.034735017073319965e-03
+2.550000000000000000e+01 2.708751698659090778e-03
+2.570000000000000284e+01 2.400396973682830063e-03
+2.589999999999999858e+01 2.108607205669885826e-03
+2.610000000000000142e+01 1.832387574320819192e-03
+2.630000000000000426e+01 1.570807118662753687e-03
+2.650000000000000000e+01 1.322994270503637581e-03
+2.670000000000000284e+01 1.088133472036523827e-03
+2.689999999999999858e+01 8.654613447925279569e-04
+2.710000000000000142e+01 6.542629252750590098e-04
+2.730000000000000426e+01 4.538686452942744076e-04
+2.750000000000000000e+01 2.634321949839485508e-04
+2.770000000000000284e+01 8.247267022967929770e-05
+2.789999999999999858e+01 -8.946541459389451901e-05
+2.810000000000000142e+01 -2.528133885021067941e-04
+2.830000000000000426e+01 -4.091560659871982739e-04
+2.850000000000000000e+01 -5.589405244258737783e-04
+2.870000000000000284e+01 -7.023220036435457673e-04
+2.889999999999999858e+01 -8.395902371019729055e-04
+2.910000000000000142e+01 -9.706573749801771043e-04
+2.930000000000000426e+01 -1.094885234970539205e-03
+2.950000000000000000e+01 -1.210868142349666486e-03
+2.970000000000000284e+01 -1.318294497706409092e-03
+2.989999999999999858e+01 -1.416376082145733798e-03
+3.010000000000000142e+01 -1.507897700854660128e-03
+3.030000000000000426e+01 -1.593664383871955985e-03
+3.050000000000000000e+01 -1.673736318902464002e-03
+3.070000000000000284e+01 -1.740630644905084368e-03
+3.089999999999999858e+01 -1.789005209551238103e-03
+3.110000000000000142e+01 -1.816262369186042325e-03
+3.130000000000000426e+01 -1.819590548340866906e-03
+3.150000000000000000e+01 -1.797513546768186215e-03
+3.170000000000000284e+01 -1.749719398738666274e-03
+3.189999999999999858e+01 -1.676916296299224389e-03
+3.210000000000000142e+01 -1.580713066499942572e-03
+3.229999999999999716e+01 -1.463516874192155072e-03
+3.250000000000000000e+01 -1.328120318387734922e-03
+3.270000000000000284e+01 -1.178210741843272423e-03
+3.290000000000000568e+01 -1.018015332235708715e-03
+3.310000000000000142e+01 -8.521844400039598876e-04
+3.329999999999999716e+01 -6.839823655063989897e-04
+3.350000000000000000e+01 -5.172414360357352860e-04
+3.370000000000000284e+01 -3.557896324776453623e-04
+3.390000000000000568e+01 -2.028567483376484239e-04
+3.410000000000000142e+01 -6.142784627760602327e-05
+3.429999999999999716e+01 6.543236827204639602e-05
+3.450000000000000000e+01 1.739210005797695263e-04
+3.470000000000000284e+01 2.614542459275110971e-04
+3.490000000000000568e+01 3.253756029878940802e-04
+3.510000000000000142e+01 3.686125820956898873e-04
+3.529999999999999716e+01 3.957017214793738958e-04
+3.550000000000000000e+01 4.140565726203760235e-04
+3.570000000000000284e+01 4.243128039879684715e-04
+3.590000000000000568e+01 4.271424833245643826e-04
+3.610000000000000142e+01 4.247443843440323603e-04
+3.629999999999999716e+01 4.180692204939637701e-04
+3.650000000000000000e+01 4.079833121649558856e-04
+3.670000000000000284e+01 3.952583380214028629e-04
+3.690000000000000568e+01 3.805613489470237461e-04
+3.710000000000000142e+01 3.644521186922300622e-04
+3.729999999999999716e+01 3.473838900283582418e-04
+3.750000000000000000e+01 3.297170368332490577e-04
+3.770000000000000284e+01 3.117972700258186502e-04
+3.790000000000000568e+01 2.939477526717323096e-04
+3.810000000000000142e+01 2.764309452821347751e-04
+3.830000000000000426e+01 2.594507763954954655e-04
+3.850000000000000000e+01 2.431533217796447534e-04
+3.870000000000000284e+01 2.276286476681602155e-04
+3.890000000000000568e+01 2.129166931495652846e-04
+3.910000000000000142e+01 1.990201027572733412e-04
+3.930000000000000426e+01 1.859199247042467339e-04
+3.950000000000000000e+01 1.735712963263425282e-04
+3.970000000000000284e+01 1.619215854356025129e-04
+3.990000000000000568e+01 1.509221298071244705e-04
+4.010000000000000142e+01 1.405363274813113260e-04
+4.030000000000000426e+01 1.307243348890880900e-04
+4.050000000000000000e+01 1.214435491656517510e-04
+4.070000000000000284e+01 1.126593927418429196e-04
+4.090000000000000568e+01 1.043511996648476751e-04
+4.110000000000000142e+01 9.650082646819679128e-05
+4.130000000000000426e+01 8.909086209109149572e-05
+4.150000000000000000e+01 8.210450640018338183e-05
+4.170000000000000284e+01 7.552549097972430388e-05
+4.190000000000000568e+01 6.933785642572585942e-05
+4.210000000000000142e+01 6.352631491411889881e-05
+4.230000000000000426e+01 5.807583448498591569e-05
+4.250000000000000000e+01 5.297178910661089711e-05
+4.270000000000000284e+01 4.820003894337416628e-05
+4.290000000000000568e+01 4.374650406156861210e-05
+4.310000000000000142e+01 3.959790209395871660e-05
+4.330000000000000426e+01 3.574061806543175413e-05
+4.350000000000000000e+01 3.216219288570860030e-05
+4.370000000000000284e+01 2.884952289972540562e-05
+4.390000000000000568e+01 2.579078759602929034e-05
+4.410000000000000142e+01 2.297351224541677726e-05
+4.430000000000000426e+01 2.038623200756899386e-05
+4.450000000000000000e+01 1.801711888583558746e-05
+4.470000000000000284e+01 1.585494734997432351e-05
+4.490000000000000568e+01 1.388858690309734434e-05
+4.510000000000000142e+01 1.210713181401948185e-05
+4.530000000000000426e+01 1.049999177710488341e-05
+4.550000000000000000e+01 9.056737155256784215e-06
+4.570000000000000284e+01 7.767064003557306708e-06
+4.590000000000000568e+01 6.621014064012466623e-06
+4.610000000000000142e+01 5.608581617831055883e-06
+4.630000000000000426e+01 4.720264514606751047e-06
+4.650000000000000000e+01 3.946644315468124158e-06
+4.670000000000000284e+01 3.278020415190346346e-06
+4.690000000000000568e+01 2.705258556026685530e-06
+4.710000000000000142e+01 2.218653873663369839e-06
+4.730000000000000426e+01 1.809039669579279237e-06
+4.750000000000000000e+01 1.467178681034118453e-06
+4.770000000000000284e+01 1.189494982933484530e-06
+4.790000000000000568e+01 9.667878669621938840e-07
+4.810000000000000142e+01 7.909738701770091379e-07
+4.830000000000000426e+01 6.540029661753313390e-07
+4.850000000000000000e+01 5.478563620465557584e-07
+4.870000000000000284e+01 4.645444404766585417e-07
+4.890000000000000568e+01 3.961048374423187819e-07
+4.910000000000000142e+01 3.346006465608565721e-07
+4.930000000000000426e+01 2.721187417509974269e-07
+4.950000000000000000e+01 2.007682104092737559e-07
+4.970000000000000284e+01 1.126788898204200922e-07
+4.990000000000000568e+01 0.000000000000000000e+00